diff options
| -rw-r--r-- | arch/i386/mm/highmem.c | 3 | ||||
| -rw-r--r-- | include/linux/highmem.h | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/i386/mm/highmem.c b/arch/i386/mm/highmem.c index 5c5043d1c2c2..ec222a7a3fa1 100644 --- a/arch/i386/mm/highmem.c +++ b/arch/i386/mm/highmem.c @@ -2,8 +2,7 @@ void *kmap(struct page *page) { - if (in_interrupt()) - BUG(); + might_sleep(); if (page < highmem_start_page) return page_address(page); return kmap_high(page); diff --git a/include/linux/highmem.h b/include/linux/highmem.h index b8334a2df0d8..8800a35efe74 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -18,7 +18,11 @@ unsigned int nr_free_highpages(void); static inline unsigned int nr_free_highpages(void) { return 0; } -static inline void *kmap(struct page *page) { return page_address(page); } +static inline void *kmap(struct page *page) +{ + might_sleep(); + return page_address(page); +} #define kunmap(page) do { (void) (page); } while (0) |
