Changeset efb48eb in mainline


Ignore:
Timestamp:
2011-12-30T23:56:54Z (12 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
22f0561
Parents:
41deb2a
Message:

Make hw_map() allocate naturally aligned virtual addresses.

File:
1 edited

Legend:

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

    r41deb2a refb48eb  
    7676#include <errno.h>
    7777#include <align.h>
     78#include <macros.h>
     79#include <bitops.h>
    7880
    7981/** Virtual operations for page subsystem. */
     
    195197        uintptr_t virtaddr;
    196198        size_t asize;
     199        size_t align;
    197200        pfn_t i;
    198201
    199202        asize = ALIGN_UP(size, PAGE_SIZE);
    200         virtaddr = km_page_alloc(asize, PAGE_SIZE);
     203        align = ispwr2(size) ? size : (1U << (fnzb(size) + 1));
     204        virtaddr = km_page_alloc(asize, align);
    201205
    202206        page_table_lock(AS_KERNEL, true);
Note: See TracChangeset for help on using the changeset viewer.