Re: [patch v2 29/35] Hexagon: Add page table header files & etc.

Arnd Bergmann
2011-08-31T14:57:48Z

On Tuesday 30 August 2011, Richard Kuo wrote:
> Removed highmem as we currently don't need it (and it didn't
> quite work).
>
> Signed-off-by: Richard Kuo <rkuo@codeaurora.org>
> Signed-off-by: Linas Vepstas <linas@codeaurora.org>

Apparently you haven't removed it completely yet:

>+/**
>+ * kunmap - unmaps a kernel mapping
>+ * @page: pointer to page struct
>+ *
>+ * If it's not in highmem, then you ain't unmapping anybody.
>+ *
>+ * If it is in highmem, it calls kunmap_high, which magically
>+ * removes the mapping or something. Seems to only decrement pkmap_count
>+ * for the page. If the pkmap_count was decremented to 1, that means it's
>+ * ready to be flushed.
>+ *
>+ * It also is responsible for waking anybody up that was waiting for a kmap
>+ * to free up.
>+ */
>+extern void kunmap_hexagon(struct page *page);
>+#define kunmap(p) kunmap_hexagon((p))
>+
>+extern struct page *kmap_atomic_to_page_hexagon(void *ptr);
>+#define kmap_atomic_to_page(p) kmap_atomic_to_page_hexagon((p))
>+
>+extern void *kmap_atomic_prot(struct page *page, pgprot_t prot);
>+extern void __kunmap_atomic(void *);
>+
>+static inline void *__kmap_atomic(struct page *page)
>+{
>+ return kmap_atomic_prot(page, kmap_prot);
>+}

I think if you disable CONFIG_ARCH_HAS_KMAP you can use the trivial
functions provided by include/linux/highmem.h.

Arnd