Re: [ 089/180] SCSI: fix scsi_wait_scan

From: Ben Hutchings
Date: Thu Oct 04 2012 - 16:57:22 EST


On Thu, Oct 04, 2012 at 10:38:13PM +0200, Willy Tarreau wrote:
> On Thu, Oct 04, 2012 at 09:34:36PM +0100, Ben Hutchings wrote:
> > On Tue, Oct 02, 2012 at 12:53:26AM +0200, Willy Tarreau wrote:
> > > 2.6.32-longterm review patch. If anyone has any objections, please let me know.
> > >
> > > ------------------
> > >
> > > From: James Bottomley <jbottomley@xxxxxxxxxxxxx>
> > >
> > > commit 1ff2f40305772b159a91c19590ee159d3a504afc upstream.
> > >
> > > Commit c751085943362143f84346d274e0011419c84202
> > > Author: Rafael J. Wysocki <rjw@xxxxxxx>
> > > Date: Sun Apr 12 20:06:56 2009 +0200
> > >
> > > PM/Hibernate: Wait for SCSI devices scan to complete during resume
> > >
> > > Broke the scsi_wait_scan module in 2.6.30. Apparently debian still uses it so
> > > fix it and backport to stable before removing it in 3.6.
> > [...]
> > > --- a/drivers/scsi/scsi_wait_scan.c
> > > +++ b/drivers/scsi/scsi_wait_scan.c
> > > @@ -13,6 +13,7 @@
> > > #include <linux/module.h>
> > > #include <linux/device.h>
> > > #include <scsi/scsi_scan.h>
> > > +#include "scsi_priv.h"
> > >
> > > static int __init wait_scan_init(void)
> > > {
> >
> > This backported version is a no-op. I think we need to do:
> >
> > -#include <scsi/scsi_scan.h>
> > +
> > +extern int scsi_complete_async_scans(void);
>
> But this is what we have in scsi_scan.h :
>
> #ifdef CONFIG_SCSI
> /* drivers/scsi/scsi_scan.c */
> extern int scsi_complete_async_scans(void);
> #else
> static inline int scsi_complete_async_scans(void) { return 0; }
> #endif
>
> Since CONFIG_SCSI_WAIT_SCAN depends on CONFIG_SCSI, we're certain to have
> it defined when we build this code.
>
> Am I missing something ?

Yes, this is dealing with the modular SCSI case (CONFIG_SCSI not
defined). We can't change the '#ifdef CONFIG_SCSI' to check
CONFIG_SCSI_MODULE as well, because <scsi/scsi_scan.h> is also used by
the PM code which is built-in.

Ben.

--
Ben Hutchings
We get into the habit of living before acquiring the habit of thinking.
- Albert Camus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/