Re: [PATCH 1/1] apbuart: fix section mismatch warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Sam Ravnborg <sam@xxxxxxxxxxxx>
Date: Tue, 27 Dec 2011 22:22:53 +0100

>>From b82ccce349dee62fe5acd3167a19490bbe9a7e18 Mon Sep 17 00:00:00 2001
> From: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Date: Tue, 27 Dec 2011 22:07:23 +0100
> Subject: [PATCH] apbuart: fix section mismatch warning
> 
> Fix following warnings:
> 
> WARNING: drivers/tty/serial/built-in.o(.text+0x7370): Section mismatch in reference from the function grlib_apbuart_configure() to the variable .init.data:apbuart_match
> The function grlib_apbuart_configure() references
> the variable __initdata apbuart_match.
> This is often because grlib_apbuart_configure lacks a __initdata
> annotation or the annotation of apbuart_match is wrong.
> 
> + 3 more warnings like this.
> 
> There is no guarantee that grlib_apbuart_of_driver.of_match_table
> is only used at __init time - so drop the __initdata annotation.
> 
> grlib_apbuart_configure() is only used during __init so add __init
> to this method too.
> 
> Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Cc: Daniel Hellstrom <daniel@xxxxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxx>

Applied to sparc-next, thanks.

Taking a look at the output of "git grep of_device_id | grep __initdata"
shows that a lot of drivers take liberties in this area, perhaps assuming
that they are built in or something like that.

But that isn't even a safe situation, because even built-in drivers can
have their of_device_id accessed later after we bootup, for example when
a bus is hot-plugged in or even via sysfs dumps of the avaialble drivers.

Probably the thing to do is to remove all of these __initdata tags,
because as far as I can tell they are _all_ wrong.  And perhaps add
'const' where missing as well.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux