Re: [PATCH] parisc: fix module loading failure of large kernel modules (take 4)

Linus Torvalds
2008-12-31T17:49:07Z

On Wed, 31 Dec 2008, Roland Dreier wrote:
>
> Does this mean lib/swiotlb.c is broken now?

Yes it does.

> It has eg:
>
> void * __weak swiotlb_alloc_boot(size_t size, unsigned long nslabs)
>
> and then
>
> void __init
> swiotlb_init_with_default_size(size_t default_size)
> {
> ...
> io_tlb_start = swiotlb_alloc_boot(bytes, io_tlb_nslabs);
>
> later on in the same file.

Good eyes.

Ingo? This comes from commit b81ea27b2329bf44b30c427800954f845896d476, by
Ian, through Jeremy.

> (I just notice this because I saw the warning about swiotlb_alloc_boot()
> not being __init but calling __alloc_bootmem_low and so I looked at the
> code yesterday)

Lucky us. What's nasty about this is that most developers probably have
updated versions of gcc, and are then surprised when some odd user has
insane behavior that doesn't match the source code - because the compiler
did something unexpected.

I guess I could make a sparse rule for this, but nobody seems to run or
care about sparse anyway. Sad.

Linus