Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/mm/backend_anon.c

    r83b6ba9f r5df1963  
    7676        .page_fault = anon_page_fault,
    7777        .frame_free = anon_frame_free,
    78 
    79         .create_shared_data = NULL,
    80         .destroy_shared_data = NULL
    8178};
    8279
     
    193190                return AS_PF_FAULT;
    194191
    195         mutex_lock(&area->sh_info->lock);
    196         if (area->sh_info->shared) {
     192        if (area->sh_info) {
    197193                btree_node_t *leaf;
    198194               
     
    204200                 * mapping, a new frame is allocated and the mapping is created.
    205201                 */
     202                mutex_lock(&area->sh_info->lock);
    206203                frame = (uintptr_t) btree_search(&area->sh_info->pagemap,
    207204                    upage - area->base, &leaf);
     
    235232                }
    236233                frame_reference_add(ADDR2PFN(frame));
     234                mutex_unlock(&area->sh_info->lock);
    237235        } else {
    238236
     
    256254                         * Reserve the memory for this page now.
    257255                         */
    258                         if (!reserve_try_alloc(1)) {
    259                                 mutex_unlock(&area->sh_info->lock);
     256                        if (!reserve_try_alloc(1))
    260257                                return AS_PF_SILENT;
    261                         }
    262258                }
    263259
     
    266262                km_temporary_page_put(kpage);
    267263        }
    268         mutex_unlock(&area->sh_info->lock);
    269264       
    270265        /*
Note: See TracChangeset for help on using the changeset viewer.