* Re: 2.6.26-rc2-mm1 (SCSI_DH build errors) [not found] <20080514010129.4f672378.akpm@linux-foundation.org> @ 2008-05-14 21:13 ` Randy Dunlap 2008-05-15 14:46 ` James Bottomley 0 siblings, 1 reply; 7+ messages in thread From: Randy Dunlap @ 2008-05-14 21:13 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, hare, scsi On Wed, 14 May 2008 01:01:29 -0700 Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc2/2.6.26-rc2-mm1/ SCSI_DH has some problems when CONFIG_SCSI=n: drivers/built-in.o: In function `activate_path': dm-mpath.c:(.text+0x18a292): undefined reference to `scsi_dh_activate' drivers/built-in.o: In function `multipath_ctr': dm-mpath.c:(.text+0x18a6f0): undefined reference to `scsi_dh_handler_exist' make[1]: *** [.tmp_vmlinux1] Error 1 # # SCSI device support # CONFIG_RAID_ATTRS=y # CONFIG_SCSI is not set # CONFIG_SCSI_DMA is not set # CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=y CONFIG_SCSI_DH_HP_SW=y CONFIG_SCSI_DH_EMC=y --- ~Randy ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 2.6.26-rc2-mm1 (SCSI_DH build errors) 2008-05-14 21:13 ` 2.6.26-rc2-mm1 (SCSI_DH build errors) Randy Dunlap @ 2008-05-15 14:46 ` James Bottomley 2008-05-15 19:56 ` Chandra Seetharaman 0 siblings, 1 reply; 7+ messages in thread From: James Bottomley @ 2008-05-15 14:46 UTC (permalink / raw) To: Randy Dunlap; +Cc: Andrew Morton, linux-kernel, hare, scsi, Chandra Seetharaman On Wed, 2008-05-14 at 14:13 -0700, Randy Dunlap wrote: > On Wed, 14 May 2008 01:01:29 -0700 Andrew Morton wrote: > > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc2/2.6.26-rc2-mm1/ > > SCSI_DH has some problems when CONFIG_SCSI=n: > > drivers/built-in.o: In function `activate_path': > dm-mpath.c:(.text+0x18a292): undefined reference to `scsi_dh_activate' > drivers/built-in.o: In function `multipath_ctr': > dm-mpath.c:(.text+0x18a6f0): undefined reference to `scsi_dh_handler_exist' > make[1]: *** [.tmp_vmlinux1] Error 1 > > > # > # SCSI device support > # > CONFIG_RAID_ATTRS=y > # CONFIG_SCSI is not set > # CONFIG_SCSI_DMA is not set > # CONFIG_SCSI_NETLINK is not set > CONFIG_SCSI_DH=y > CONFIG_SCSI_DH_RDAC=y > CONFIG_SCSI_DH_HP_SW=y > CONFIG_SCSI_DH_EMC=y This is one more of those annoying selects. The SCSI_DH Kconfig file is correctly dependent on SCSI: menuconfig SCSI_DH tristate "SCSI Device Handlers" depends on SCSI default n help but we've also got a select in md/Kconfig: config DM_MULTIPATH tristate "Multipath target" depends on BLK_DEV_DM select SCSI_DH Which ignores the dependency. My best guess for fixing this is either to make the select a depends or just drop it altogether (after all, it's possible to have multipath on non-SCSI devices). James ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 2.6.26-rc2-mm1 (SCSI_DH build errors) 2008-05-15 14:46 ` James Bottomley @ 2008-05-15 19:56 ` Chandra Seetharaman 2008-05-23 3:25 ` Andrew Morton 0 siblings, 1 reply; 7+ messages in thread From: Chandra Seetharaman @ 2008-05-15 19:56 UTC (permalink / raw) To: James Bottomley; +Cc: Randy Dunlap, Andrew Morton, linux-kernel, hare, scsi [-- Attachment #1: Type: text/plain, Size: 1623 bytes --] Hi James, Andrew, Here is a patch to remove the automatic "select" of scsi_dh for dm-multipath. Sorry about the mishap. chandra On Thu, 2008-05-15 at 15:46 +0100, James Bottomley wrote: > On Wed, 2008-05-14 at 14:13 -0700, Randy Dunlap wrote: > > On Wed, 14 May 2008 01:01:29 -0700 Andrew Morton wrote: > > > > > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc2/2.6.26-rc2-mm1/ > > > > SCSI_DH has some problems when CONFIG_SCSI=n: > > > > drivers/built-in.o: In function `activate_path': > > dm-mpath.c:(.text+0x18a292): undefined reference to `scsi_dh_activate' > > drivers/built-in.o: In function `multipath_ctr': > > dm-mpath.c:(.text+0x18a6f0): undefined reference to `scsi_dh_handler_exist' > > make[1]: *** [.tmp_vmlinux1] Error 1 > > > > > > # > > # SCSI device support > > # > > CONFIG_RAID_ATTRS=y > > # CONFIG_SCSI is not set > > # CONFIG_SCSI_DMA is not set > > # CONFIG_SCSI_NETLINK is not set > > CONFIG_SCSI_DH=y > > CONFIG_SCSI_DH_RDAC=y > > CONFIG_SCSI_DH_HP_SW=y > > CONFIG_SCSI_DH_EMC=y > > This is one more of those annoying selects. The SCSI_DH Kconfig file is > correctly dependent on SCSI: > > menuconfig SCSI_DH > tristate "SCSI Device Handlers" > depends on SCSI > default n > help > > but we've also got a select in md/Kconfig: > > config DM_MULTIPATH > tristate "Multipath target" > depends on BLK_DEV_DM > select SCSI_DH > > Which ignores the dependency. > > My best guess for fixing this is either to make the select a depends or > just drop it altogether (after all, it's possible to have multipath on > non-SCSI devices). > > James > > [-- Attachment #2: remove_select_on_multipath --] [-- Type: text/plain, Size: 1658 bytes --] Do not automatically "select" SCSI_DH for dm-multipath. If SCSI_DH doesn't exist,just do not allow hardware handlers to be used. Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> --- Index: scsi-misc-2.6/drivers/md/Kconfig =================================================================== --- scsi-misc-2.6.orig/drivers/md/Kconfig +++ scsi-misc-2.6/drivers/md/Kconfig @@ -252,7 +252,6 @@ config DM_ZERO config DM_MULTIPATH tristate "Multipath target" depends on BLK_DEV_DM - select SCSI_DH ---help--- Allow volume managers to support multipath hardware. Index: scsi-misc-2.6/drivers/md/dm-mpath.c =================================================================== --- scsi-misc-2.6.orig/drivers/md/dm-mpath.c +++ scsi-misc-2.6/drivers/md/dm-mpath.c @@ -664,6 +664,8 @@ static int parse_hw_handler(struct arg_s request_module("scsi_dh_%s", m->hw_handler_name); if (scsi_dh_handler_exist(m->hw_handler_name) == 0) { ti->error = "unknown hardware handler type"; + kfree(m->hw_handler_name); + m->hw_handler_name = NULL; return -EINVAL; } consume(as, hw_argc - 1); Index: scsi-misc-2.6/include/scsi/scsi_dh.h =================================================================== --- scsi-misc-2.6.orig/include/scsi/scsi_dh.h +++ scsi-misc-2.6/include/scsi/scsi_dh.h @@ -54,6 +54,16 @@ enum { SCSI_DH_NOSYS, SCSI_DH_DRIVER_MAX, }; - +#ifdef CONFIG_SCSI_DH extern int scsi_dh_activate(struct request_queue *); extern int scsi_dh_handler_exist(const char *); +#else +inline int scsi_dh_activate(struct request_queue *req) +{ + return 0; +} +inline int scsi_dh_handler_exist(const char *name) +{ + return 0; +} +#endif ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 2.6.26-rc2-mm1 (SCSI_DH build errors) 2008-05-15 19:56 ` Chandra Seetharaman @ 2008-05-23 3:25 ` Andrew Morton 2008-05-23 19:39 ` Chandra Seetharaman 0 siblings, 1 reply; 7+ messages in thread From: Andrew Morton @ 2008-05-23 3:25 UTC (permalink / raw) To: sekharan; +Cc: James Bottomley, Randy Dunlap, linux-kernel, hare, scsi On Thu, 15 May 2008 12:56:14 -0700 Chandra Seetharaman <sekharan@us.ibm.com> wrote: > Hi James, Andrew, > > Here is a patch to remove the automatic "select" of scsi_dh for > dm-multipath. > > Sorry about the mishap. > > This is busted. > Do not automatically "select" SCSI_DH for dm-multipath. If SCSI_DH > doesn't exist,just do not allow hardware handlers to be used. > > Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> > --- > > Index: scsi-misc-2.6/drivers/md/Kconfig > =================================================================== > --- scsi-misc-2.6.orig/drivers/md/Kconfig > +++ scsi-misc-2.6/drivers/md/Kconfig > @@ -252,7 +252,6 @@ config DM_ZERO > config DM_MULTIPATH > tristate "Multipath target" > depends on BLK_DEV_DM > - select SCSI_DH > ---help--- > Allow volume managers to support multipath hardware. > > Index: scsi-misc-2.6/drivers/md/dm-mpath.c > =================================================================== > --- scsi-misc-2.6.orig/drivers/md/dm-mpath.c > +++ scsi-misc-2.6/drivers/md/dm-mpath.c > @@ -664,6 +664,8 @@ static int parse_hw_handler(struct arg_s > request_module("scsi_dh_%s", m->hw_handler_name); > if (scsi_dh_handler_exist(m->hw_handler_name) == 0) { > ti->error = "unknown hardware handler type"; > + kfree(m->hw_handler_name); > + m->hw_handler_name = NULL; > return -EINVAL; > } > consume(as, hw_argc - 1); > Index: scsi-misc-2.6/include/scsi/scsi_dh.h > =================================================================== > --- scsi-misc-2.6.orig/include/scsi/scsi_dh.h > +++ scsi-misc-2.6/include/scsi/scsi_dh.h > @@ -54,6 +54,16 @@ enum { > SCSI_DH_NOSYS, > SCSI_DH_DRIVER_MAX, > }; > - > +#ifdef CONFIG_SCSI_DH > extern int scsi_dh_activate(struct request_queue *); > extern int scsi_dh_handler_exist(const char *); > +#else > +inline int scsi_dh_activate(struct request_queue *req) > +{ > + return 0; > +} > +inline int scsi_dh_handler_exist(const char *name) > +{ > + return 0; > +} > +#endif You obviously wanted `static inline' there, but it still fails i386 allmodconfig compilation. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 2.6.26-rc2-mm1 (SCSI_DH build errors) 2008-05-23 3:25 ` Andrew Morton @ 2008-05-23 19:39 ` Chandra Seetharaman 2008-05-23 20:28 ` Randy Dunlap 0 siblings, 1 reply; 7+ messages in thread From: Chandra Seetharaman @ 2008-05-23 19:39 UTC (permalink / raw) To: Andrew Morton; +Cc: James Bottomley, Randy Dunlap, linux-kernel, hare, scsi Yikes.... Sorry again... Hopefully this attached patch work properly. chandra On Thu, 2008-05-22 at 20:25 -0700, Andrew Morton wrote: > On Thu, 15 May 2008 12:56:14 -0700 Chandra Seetharaman <sekharan@us.ibm.com> wrote: > > > Hi James, Andrew, > > > > Here is a patch to remove the automatic "select" of scsi_dh for > > dm-multipath. > > > > Sorry about the mishap. > > > > > > This is busted. > ------------------------- Do not automatically "select" SCSI_DH for dm-multipath. If SCSI_DH doesn't exist,just do not allow hardware handlers to be used. Handle SCSI_DH being a module also. Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> Reported-by: Randy Dunlap <randy.dunlap@oracle.com> Reported-by: Andrew Morton <akpm@linux-foundation.org> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: Alasdair G Kergon <agk@redhat.com> Cc: Mike Christie <michaelc@cs.wisc.edu> Cc: Hannes Reinecke <hare@suse.de> --- Index: scsi-misc-2.6/drivers/md/Kconfig =================================================================== --- scsi-misc-2.6.orig/drivers/md/Kconfig +++ scsi-misc-2.6/drivers/md/Kconfig @@ -252,7 +252,6 @@ config DM_ZERO config DM_MULTIPATH tristate "Multipath target" depends on BLK_DEV_DM - select SCSI_DH ---help--- Allow volume managers to support multipath hardware. Index: scsi-misc-2.6/drivers/md/dm-mpath.c =================================================================== --- scsi-misc-2.6.orig/drivers/md/dm-mpath.c +++ scsi-misc-2.6/drivers/md/dm-mpath.c @@ -664,6 +664,8 @@ static int parse_hw_handler(struct arg_s request_module("scsi_dh_%s", m->hw_handler_name); if (scsi_dh_handler_exist(m->hw_handler_name) == 0) { ti->error = "unknown hardware handler type"; + kfree(m->hw_handler_name); + m->hw_handler_name = NULL; return -EINVAL; } consume(as, hw_argc - 1); Index: scsi-misc-2.6/include/scsi/scsi_dh.h =================================================================== --- scsi-misc-2.6.orig/include/scsi/scsi_dh.h +++ scsi-misc-2.6/include/scsi/scsi_dh.h @@ -54,6 +54,16 @@ enum { SCSI_DH_NOSYS, SCSI_DH_DRIVER_MAX, }; - +#if defined(CONFIG_SCSI_DH) || defined(CONFIG_SCSI_DH_MODULE) extern int scsi_dh_activate(struct request_queue *); extern int scsi_dh_handler_exist(const char *); +#else +static inline int scsi_dh_activate(struct request_queue *req) +{ + return 0; +} +static inline int scsi_dh_handler_exist(const char *name) +{ + return 0; +} +#endif ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 2.6.26-rc2-mm1 (SCSI_DH build errors) 2008-05-23 19:39 ` Chandra Seetharaman @ 2008-05-23 20:28 ` Randy Dunlap 2008-05-24 1:16 ` Chandra Seetharaman 0 siblings, 1 reply; 7+ messages in thread From: Randy Dunlap @ 2008-05-23 20:28 UTC (permalink / raw) To: sekharan; +Cc: Andrew Morton, James Bottomley, linux-kernel, hare, scsi Chandra Seetharaman wrote: > Yikes.... Sorry again... Hopefully this attached patch work properly. Did it build cleanly for you? Hint: Use SCSI_DH as module and MD_MULTIPATH=y. Build errors for me. > chandra > On Thu, 2008-05-22 at 20:25 -0700, Andrew Morton wrote: >> On Thu, 15 May 2008 12:56:14 -0700 Chandra Seetharaman <sekharan@us.ibm.com> wrote: >> >>> Hi James, Andrew, >>> >>> Here is a patch to remove the automatic "select" of scsi_dh for >>> dm-multipath. >>> >>> Sorry about the mishap. >>> >>> >> This is busted. >> > ------------------------- > Do not automatically "select" SCSI_DH for dm-multipath. If SCSI_DH > doesn't exist,just do not allow hardware handlers to be used. > > Handle SCSI_DH being a module also. > > Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> > Reported-by: Randy Dunlap <randy.dunlap@oracle.com> > Reported-by: Andrew Morton <akpm@linux-foundation.org> > Cc: James Bottomley <James.Bottomley@HansenPartnership.com> > Cc: Alasdair G Kergon <agk@redhat.com> > Cc: Mike Christie <michaelc@cs.wisc.edu> > Cc: Hannes Reinecke <hare@suse.de> > --- > > Index: scsi-misc-2.6/drivers/md/Kconfig > =================================================================== > --- scsi-misc-2.6.orig/drivers/md/Kconfig > +++ scsi-misc-2.6/drivers/md/Kconfig > @@ -252,7 +252,6 @@ config DM_ZERO > config DM_MULTIPATH > tristate "Multipath target" > depends on BLK_DEV_DM > - select SCSI_DH > ---help--- > Allow volume managers to support multipath hardware. > > Index: scsi-misc-2.6/drivers/md/dm-mpath.c > =================================================================== > --- scsi-misc-2.6.orig/drivers/md/dm-mpath.c > +++ scsi-misc-2.6/drivers/md/dm-mpath.c > @@ -664,6 +664,8 @@ static int parse_hw_handler(struct arg_s > request_module("scsi_dh_%s", m->hw_handler_name); > if (scsi_dh_handler_exist(m->hw_handler_name) == 0) { > ti->error = "unknown hardware handler type"; > + kfree(m->hw_handler_name); > + m->hw_handler_name = NULL; > return -EINVAL; > } > consume(as, hw_argc - 1); > Index: scsi-misc-2.6/include/scsi/scsi_dh.h > =================================================================== > --- scsi-misc-2.6.orig/include/scsi/scsi_dh.h > +++ scsi-misc-2.6/include/scsi/scsi_dh.h > @@ -54,6 +54,16 @@ enum { > SCSI_DH_NOSYS, > SCSI_DH_DRIVER_MAX, > }; > - > +#if defined(CONFIG_SCSI_DH) || defined(CONFIG_SCSI_DH_MODULE) > extern int scsi_dh_activate(struct request_queue *); > extern int scsi_dh_handler_exist(const char *); > +#else > +static inline int scsi_dh_activate(struct request_queue *req) > +{ > + return 0; > +} > +static inline int scsi_dh_handler_exist(const char *name) > +{ > + return 0; > +} > +#endif > > -- ~Randy ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 2.6.26-rc2-mm1 (SCSI_DH build errors) 2008-05-23 20:28 ` Randy Dunlap @ 2008-05-24 1:16 ` Chandra Seetharaman 0 siblings, 0 replies; 7+ messages in thread From: Chandra Seetharaman @ 2008-05-24 1:16 UTC (permalink / raw) To: Randy Dunlap; +Cc: Andrew Morton, James Bottomley, linux-kernel, hare, scsi On Fri, 2008-05-23 at 13:28 -0700, Randy Dunlap wrote: > Chandra Seetharaman wrote: > > Yikes.... Sorry again... Hopefully this attached patch work properly. > > Did it build cleanly for you? > Hint: > Use SCSI_DH as module and MD_MULTIPATH=y. Build errors for me. Oh, my... it is getting very tricky. Here is a patch that compiles clean in different combinations. But, I agree that the "depends" (under DM_MULTIPATH) sure looks weird. ----------- Do not automatically "select" SCSI_DH for dm-multipath. If SCSI_DH doesn't exist,just do not allow hardware handlers to be used. Handle SCSI_DH being a module also. Make sure it doesn't allow DM_MULTIPATH to be compiled in when SCSI_DH is a module. Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> Reported-by: Randy Dunlap <randy.dunlap@oracle.com> Reported-by: Andrew Morton <akpm@linux-foundation.org> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: Alasdair G Kergon <agk@redhat.com> Cc: Mike Christie <michaelc@cs.wisc.edu> Cc: Mike Anderson <andmike@us.ibm.com> Cc: Hannes Reinecke <hare@suse.de> --- Index: scsi-misc-2.6/drivers/md/Kconfig =================================================================== --- scsi-misc-2.6.orig/drivers/md/Kconfig +++ scsi-misc-2.6/drivers/md/Kconfig @@ -252,7 +252,7 @@ config DM_ZERO config DM_MULTIPATH tristate "Multipath target" depends on BLK_DEV_DM - select SCSI_DH + depends on SCSI_DH || !SCSI_DH ---help--- Allow volume managers to support multipath hardware. Index: scsi-misc-2.6/drivers/md/dm-mpath.c =================================================================== --- scsi-misc-2.6.orig/drivers/md/dm-mpath.c +++ scsi-misc-2.6/drivers/md/dm-mpath.c @@ -664,6 +664,8 @@ static int parse_hw_handler(struct arg_s request_module("scsi_dh_%s", m->hw_handler_name); if (scsi_dh_handler_exist(m->hw_handler_name) == 0) { ti->error = "unknown hardware handler type"; + kfree(m->hw_handler_name); + m->hw_handler_name = NULL; return -EINVAL; } consume(as, hw_argc - 1); Index: scsi-misc-2.6/include/scsi/scsi_dh.h =================================================================== --- scsi-misc-2.6.orig/include/scsi/scsi_dh.h +++ scsi-misc-2.6/include/scsi/scsi_dh.h @@ -54,6 +54,16 @@ enum { SCSI_DH_NOSYS, SCSI_DH_DRIVER_MAX, }; - +#if defined(CONFIG_SCSI_DH) || defined(CONFIG_SCSI_DH_MODULE) extern int scsi_dh_activate(struct request_queue *); extern int scsi_dh_handler_exist(const char *); +#else +static inline int scsi_dh_activate(struct request_queue *req) +{ + return 0; +} +static inline int scsi_dh_handler_exist(const char *name) +{ + return 0; +} +#endif ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-05-24 1:16 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20080514010129.4f672378.akpm@linux-foundation.org>
2008-05-14 21:13 ` 2.6.26-rc2-mm1 (SCSI_DH build errors) Randy Dunlap
2008-05-15 14:46 ` James Bottomley
2008-05-15 19:56 ` Chandra Seetharaman
2008-05-23 3:25 ` Andrew Morton
2008-05-23 19:39 ` Chandra Seetharaman
2008-05-23 20:28 ` Randy Dunlap
2008-05-24 1:16 ` Chandra Seetharaman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).