2006-12-16 22:07:54

by Jan Engelhardt

[permalink] [raw]
Subject: Re: cxgb3 and 2.6.20-rc1


On Dec 16 2006 13:55, Divy Le Ray wrote:
>> > A corresponding monolithic patch is posted at the following URL:
>> > http://service.chelsio.com/kernel.org/cxgb3.patch.bz2
>> >
>>
>> I was unable to compile this on 2.6.20-rc1, because:
>>
>> CC [M] drivers/net/cxgb3/cxgb3_offload.o
>> drivers/net/cxgb3/cxgb3_offload.c: In function ‘cxgb_free_mem’:
>> drivers/net/cxgb3/cxgb3_offload.c:1004: error: ‘PKMAP_BASE’ undeclared
>> (first use in this function)
>>
>> However, line 1004 is:
>>
>> if (p >= VMALLOC_START && p < VMALLOC_END)
>>
>> and include/asm/pgtable.h:
>>
>> # ifdef CONFIG_HIGHMEM
>> # define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE)
>> # else
>> # define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE)
>> # endif
>>
>> So include/asm/pgtable.h lacks inclusion of include/asm/highmem.h,
>> where PKMAP_BASE is defined. Adding it gives me more compile errors.
>> Not good. Does anyone have a patch to fix that?
>>
>
> I've never tripped on this. I cannot reproduce it.

Enable CONFIG_HIGHMEM4G or CONFIG_HIGHMEM64G.

> Would you mind trying this:
> add #include <linux/highmem.h> in drivers/net/cxgb3/cxgb3_offload.c
> and see if it fixes the compilation ?

Yes 'fixes' it.
But such a change seems bogus to me. You are
using VMALLOC_END, hence you should include the .h file which contains
VMALLOC_END, and nothing more. Of course there are exceptions to this
(like getting at elevator.h's stuff by means of inclusion of blkdev.h)


-`J'
--