highmem.c 765 B

123456789101112131415161718192021222324252627282930313233
  1. /* highmem.c: arch-specific highmem stuff
  2. *
  3. * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
  4. * Written by David Howells (dhowells@redhat.com)
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU General Public License
  8. * as published by the Free Software Foundation; either version
  9. * 2 of the License, or (at your option) any later version.
  10. */
  11. #include <linux/highmem.h>
  12. void *kmap(struct page *page)
  13. {
  14. might_sleep();
  15. if (!PageHighMem(page))
  16. return page_address(page);
  17. return kmap_high(page);
  18. }
  19. void kunmap(struct page *page)
  20. {
  21. if (in_interrupt())
  22. BUG();
  23. if (!PageHighMem(page))
  24. return;
  25. kunmap_high(page);
  26. }
  27. struct page *kmap_atomic_to_page(void *ptr)
  28. {
  29. return virt_to_page(ptr);
  30. }