Linux SCSI subsystem development
 help / color / mirror / Atom feed
* section mismatches (scsi e.g.)
@ 2006-04-14 16:29 Randy.Dunlap
  2006-04-14 16:50 ` James Bottomley
  2006-04-14 16:52 ` Sam Ravnborg
  0 siblings, 2 replies; 7+ messages in thread
From: Randy.Dunlap @ 2006-04-14 16:29 UTC (permalink / raw)
  To: sam; +Cc: scsi

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?

Must have CONFIG_HOTPLUG=n ...

---
~Randy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: section mismatches (scsi e.g.)
  2006-04-14 16:29 section mismatches (scsi e.g.) Randy.Dunlap
@ 2006-04-14 16:50 ` James Bottomley
  2006-04-14 16:53   ` Sam Ravnborg
  2006-04-14 16:52 ` Sam Ravnborg
  1 sibling, 1 reply; 7+ messages in thread
From: James Bottomley @ 2006-04-14 16:50 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: sam, scsi

On Fri, 2006-04-14 at 09:29 -0700, Randy.Dunlap wrote:
> 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?

These seem to have been turning up all over the tree.  The only common
feature seems to be that if you re-run the build, they don't show up
again.

James



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: section mismatches (scsi e.g.)
  2006-04-14 16:29 section mismatches (scsi e.g.) Randy.Dunlap
  2006-04-14 16:50 ` James Bottomley
@ 2006-04-14 16:52 ` Sam Ravnborg
  2006-04-14 18:27   ` Randy.Dunlap
  2006-04-14 19:25   ` Randy.Dunlap
  1 sibling, 2 replies; 7+ messages in thread
From: Sam Ravnborg @ 2006-04-14 16:52 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: scsi

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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: section mismatches (scsi e.g.)
  2006-04-14 16:50 ` James Bottomley
@ 2006-04-14 16:53   ` Sam Ravnborg
  0 siblings, 0 replies; 7+ messages in thread
From: Sam Ravnborg @ 2006-04-14 16:53 UTC (permalink / raw)
  To: James Bottomley; +Cc: Randy.Dunlap, scsi

On Fri, Apr 14, 2006 at 11:50:15AM -0500, James Bottomley wrote:
> On Fri, 2006-04-14 at 09:29 -0700, Randy.Dunlap wrote:
> > 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?
> 
> These seem to have been turning up all over the tree.  The only common
> feature seems to be that if you re-run the build, they don't show up
> again.

I really hope this is not true. The reporting ought to be conistent.
If you can give me something reproduceable then I will try to hunt it
down.

	Sam

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: section mismatches (scsi e.g.)
  2006-04-14 16:52 ` Sam Ravnborg
@ 2006-04-14 18:27   ` Randy.Dunlap
  2006-04-14 19:25   ` Randy.Dunlap
  1 sibling, 0 replies; 7+ messages in thread
From: Randy.Dunlap @ 2006-04-14 18:27 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-scsi

On Fri, 14 Apr 2006 18:52:10 +0200 Sam Ravnborg wrote:

> 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:

[snip]

> > 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?

I would say yes.

> 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.

+ I don't see the inconsistencies that James mentioned.

Thanks.

---
~Randy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: section mismatches (scsi e.g.)
  2006-04-14 16:52 ` Sam Ravnborg
  2006-04-14 18:27   ` Randy.Dunlap
@ 2006-04-14 19:25   ` Randy.Dunlap
  2006-04-14 21:21     ` Sam Ravnborg
  1 sibling, 1 reply; 7+ messages in thread
From: Randy.Dunlap @ 2006-04-14 19:25 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-scsi

On Fri, 14 Apr 2006 18:52:10 +0200 Sam Ravnborg wrote:

> 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):
> > 
[snip]

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

OK, I applied the patch.  Now please consider these (that I doubt):

WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x0)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x8)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x10)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x18)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x20)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x28)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x30)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x38)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x40)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x48)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x50)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x58)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x60)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x68)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x70)
WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x78)

Any ideas?

---
~Randy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: section mismatches (scsi e.g.)
  2006-04-14 19:25   ` Randy.Dunlap
@ 2006-04-14 21:21     ` Sam Ravnborg
  0 siblings, 0 replies; 7+ messages in thread
From: Sam Ravnborg @ 2006-04-14 21:21 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: linux-scsi

On Fri, Apr 14, 2006 at 12:25:20PM -0700, Randy.Dunlap wrote:
> On Fri, 14 Apr 2006 18:52:10 +0200 Sam Ravnborg wrote:
> 
> > 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):
> > > 
> [snip]
> 
> > Darren Jenkins already pointed this pattern out but somehow I lost
> > the patch (not applied).
> > It is here:
> 
> OK, I applied the patch.  Now please consider these (that I doubt):
> 
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x0)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x8)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x10)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x18)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x20)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x28)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x30)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x38)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x40)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x48)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x50)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x58)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x60)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x68)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x70)
> WARNING: drivers/scsi/sd_mod.o - Section mismatch: reference to .exit.text: from .rodata after '' (at offset 0x78)
> 
> Any ideas?
For .init.text the following was explained:
* Identify sections from which references to a .init section is OK.
*
* Unfortunately references to read only data that referenced .init
* sections had to be excluded. Almost all of these are false
* positives, they are created by gcc. The downside of excluding
* rodata
* is that there really are some user references from rodata to
* init code, e.g. drivers/video/vgacon.c:

So ignoring .rodata in exit_section_ref_ok() seems to be the solution
here.
So we end up with following patch.

	Sam

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 7e8079a..93a043e 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;
@@ -820,6 +821,7 @@ static int exit_section(const char *name
  * For our future {in}sanity, add a comment that this is the ppc .opd
  * section, not the ia64 .opd section.
  * ia64 .opd should not point to discarded sections.
+ * [.rodata] like for .init.text we ignore .rodata references -same reason
  **/
 static int exit_section_ref_ok(const char *name)
 {
@@ -829,6 +831,7 @@ static int exit_section_ref_ok(const cha
 		".exit.text",
 		".exit.data",
 		".init.text",
+		".rodata",
 		".opd", /* See comment [OPD] */
 		".toc1",  /* used by ppc64 */
 		".altinstructions",

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-04-14 21:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-14 16:29 section mismatches (scsi e.g.) Randy.Dunlap
2006-04-14 16:50 ` James Bottomley
2006-04-14 16:53   ` Sam Ravnborg
2006-04-14 16:52 ` Sam Ravnborg
2006-04-14 18:27   ` Randy.Dunlap
2006-04-14 19:25   ` Randy.Dunlap
2006-04-14 21:21     ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox