Re: [RFC] atomic highmem kmap page pinning

From: Minchan Kim
Date: Thu Mar 05 2009 - 18:14:36 EST


On Fri, Mar 6, 2009 at 7:59 AM, Russell King - ARM Linux
<linux@xxxxxxxxxxxxxxxx> wrote:
> On Fri, Mar 06, 2009 at 07:23:44AM +0900, Minchan Kim wrote:
>> > +#ifdef ARCH_NEEDS_KMAP_HIGH_GET
>> > +/**
>> > + * kmap_high_get - pin a highmem page into memory
>> > + * @page: &struct page to pin
>> > + *
>> > + * Returns the page's current virtual memory address, or NULL if no mapping
>> > + * exists. ÂWhen and only when a non null address is returned then a
>> > + * matching call to kunmap_high() is necessary.
>> > + *
>> > + * This can be called from any context.
>> > + */
>> > +void *kmap_high_get(struct page *page)
>> > +{
>> > + Â Â Â unsigned long vaddr, flags;
>> > +
>> > + Â Â Â spin_lock_kmap_any(flags);
>> > + Â Â Â vaddr = (unsigned long)page_address(page);
>> > + Â Â Â if (vaddr) {
>> > + Â Â Â Â Â Â Â BUG_ON(pkmap_count[PKMAP_NR(vaddr)] < 1);
>> > + Â Â Â Â Â Â Â pkmap_count[PKMAP_NR(vaddr)]++;
>> > + Â Â Â }
>> > + Â Â Â spin_unlock_kmap_any(flags);
>> > + Â Â Â return (void*) vaddr;
>> > +}
>> > +#endif
>>
>> Let's add empty function for architecture of no ARCH_NEEDS_KMAP_HIGH_GET,
>
> The reasoning being?

I thought it can be used in common arm function.
so, for VIVT, it can be work but for VIPT, it can be nulled as
preventing compile error.

But, I don't know where we use kmap_high_get since I didn't see any
patch which use it.
If it is only used architecture specific place, pz, forgot my comment.

--
Kinds regards,
Minchan Kim
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/