Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/uhci/utils/malloc32.h

    rfbcdeb8 r75f9dcd  
    5454        if (addr == NULL)
    5555                return 0;
    56        
     56
    5757        uintptr_t result;
    5858        const int ret = as_get_physical_mapping(addr, &result);
    5959        if (ret != EOK)
    6060                return 0;
    61        
    62         return result;
     61        return (result | ((uintptr_t)addr & 0xfff));
    6362}
    6463/*----------------------------------------------------------------------------*/
     
    9897static inline void * get_page(void)
    9998{
    100         void *address = as_area_create((void *) -1, UHCI_REQUIRED_PAGE_SIZE,
    101             AS_AREA_READ | AS_AREA_WRITE);
    102         if (address == (void *) -1)
     99        void *free_address = as_get_mappable_page(UHCI_REQUIRED_PAGE_SIZE);
     100        if (free_address == 0)
    103101                return NULL;
    104        
     102        void *address = as_area_create(free_address, UHCI_REQUIRED_PAGE_SIZE,
     103                  AS_AREA_READ | AS_AREA_WRITE);
     104        if (address != free_address)
     105                return NULL;
    105106        return address;
    106107}
Note: See TracChangeset for help on using the changeset viewer.