Re: section mismatches (scsi e.g.)

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

 



On Fri, Apr 14, 2006 at 09:29:11AM -0700, Randy.Dunlap wrote:
> Hi Sam,
> 
> I was looking at these warnings (on 2.6.17-rc1-git8):
> 
> WARNING: drivers/scsi/3w-9xxx.o - Section mismatch: reference to .init.data: from .data between 'twa_driver' (at offset 0x18) and 'twa_error_table'
> WARNING: drivers/scsi/3w-xxxx.o - Section mismatch: reference to .init.data: from .data between 'tw_driver' (at offset 0x18) and 'tw_sense_table'
> WARNING: drivers/scsi/gdth.o - Section mismatch: reference to .init.text:gdth_detect from .data between 'driver_template' (at offset 0x270) and 'async_cache_tab'
> 
> I either don't see a problem or I'm having trouble reading/decoding
> the warning messages.  Could you look at these 3 sometime?

> WARNING: drivers/scsi/3w-9xxx.o
twa_driver contains a reference to twa_pci_tbl which is marked
devinitdata.

Darren Jenkins already pointed this pattern out but somehow I lost
the patch (not applied).
It is here:

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 0b92ddf..81448e5 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -492,7 +492,7 @@ static int strrcmp(const char *s, const 
  *   These functions may often be marked __init and we do not want to
  *   warn here.
  *   the pattern is identified by:
- *   tosec   = .init.text | .exit.text
+ *   tosec   = .init.text | .exit.text | .init.data
  *   fromsec = .data
  *   atsym = *_driver, *_ops, *_probe, *probe_one
  **/
@@ -522,7 +522,8 @@ static int secref_whitelist(const char *
 
 	/* Check for pattern 2 */
 	if ((strcmp(tosec, ".init.text") != 0) &&
-	    (strcmp(tosec, ".exit.text") != 0))
+	    (strcmp(tosec, ".exit.text") != 0) &&
+	    (strcmp(tosec, ".init.data") != 0))
 		f2 = 0;
 	if (strcmp(fromsec, ".data") != 0)
 		f2 = 0;

> WARNING: drivers/scsi/3w-xxxx.o
Same issue as above.

> WARNING: drivers/scsi/gdth.o 
>From modpost.c:
* Pattern 2:
*   Many drivers utilise a *_driver container with references to
*   add, remove, probe functions etc.
*   These functions may often be marked __init and we do not want to
*   warn here.
*   the pattern is identified by:
*   tosec   = .init.text | .exit.text
*   fromsec = .data
*   atsym = *_driver, *_ops, *_probe, *probe_one
**/

Shall we include *_template in this list?
The most common name seems to be the ambigous driver_template.
Some scsi drievers has been a bit more specific and used
<driver>_template.
In total 76 drivers.

16 drivers uses: *_sht for their scsi_host_template variables.
And one uses NCR_Q720_tpnt.

I will push the 'lost' patch later today.

	Sam
> 
> Must have CONFIG_HOTPLUG=n ...
> 
> ---
> ~Randy
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux