Re: [PATCH 1/2] ses: use scsi_is_sas_rphy instead of is_sas_attached
On Mon, Aug 15, 2016 at 07:59:25AM -0700, James Bottomley wrote: > On Mon, 2016-08-15 at 16:40 +0200, Johannes Thumshirn wrote: > > On Mon, Aug 15, 2016 at 07:25:53AM -0700, James Bottomley wrote: > > > On Mon, 2016-08-15 at 22:11 +0800, kbuild test robot wrote: > > > > Hi Johannes, > > > > > > > > [auto build test ERROR on scsi/for-next] > > > > [also build test ERROR on v4.8-rc2 next-20160815] > > > > [if your patch is applied to the wrong git tree, please drop us a > > > > note to help improve the system] > > > > > > This is happening because scsi_is_sas_rphy wasn't designed to be > > > used outside the SAS transport class, so it's failing when the > > > ATTRs aren't defined. > > > > > > This is the way you fix it (needs to be a precursor patch to 1/2): > > > > > > James > > > > Thanks, but I'm wondering about the call to sas_get_address(). It was > > there before the patch as well and now it's an undefined reference. > > Am I missing something here? Sure it can be guarded in the #if block. > > Yes: gcc is kind enough to elide any code that looks like > > if (0) { > refer to something > } > > So the static inline ensures anything within the brace isn't used as a > linkable reference. Aaahhh, that explains a lot. Anyways, I've included get_sas_address() in the ifdef guard and compile tested the new series with and with out CONFIG_SCSI_SAS_ATTRS. Will send out shortly. -- Johannes Thumshirn Storage jthumsh...@suse.de+49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ses: use scsi_is_sas_rphy instead of is_sas_attached
On Mon, 2016-08-15 at 16:40 +0200, Johannes Thumshirn wrote: > On Mon, Aug 15, 2016 at 07:25:53AM -0700, James Bottomley wrote: > > On Mon, 2016-08-15 at 22:11 +0800, kbuild test robot wrote: > > > Hi Johannes, > > > > > > [auto build test ERROR on scsi/for-next] > > > [also build test ERROR on v4.8-rc2 next-20160815] > > > [if your patch is applied to the wrong git tree, please drop us a > > > note to help improve the system] > > > > This is happening because scsi_is_sas_rphy wasn't designed to be > > used outside the SAS transport class, so it's failing when the > > ATTRs aren't defined. > > > > This is the way you fix it (needs to be a precursor patch to 1/2): > > > > James > > Thanks, but I'm wondering about the call to sas_get_address(). It was > there before the patch as well and now it's an undefined reference. > Am I missing something here? Sure it can be guarded in the #if block. Yes: gcc is kind enough to elide any code that looks like if (0) { refer to something } So the static inline ensures anything within the brace isn't used as a linkable reference. James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ses: use scsi_is_sas_rphy instead of is_sas_attached
On Mon, Aug 15, 2016 at 07:25:53AM -0700, James Bottomley wrote: > On Mon, 2016-08-15 at 22:11 +0800, kbuild test robot wrote: > > Hi Johannes, > > > > [auto build test ERROR on scsi/for-next] > > [also build test ERROR on v4.8-rc2 next-20160815] > > [if your patch is applied to the wrong git tree, please drop us a > > note to help improve the system] > > This is happening because scsi_is_sas_rphy wasn't designed to be used > outside the SAS transport class, so it's failing when the ATTRs aren't > defined. > > This is the way you fix it (needs to be a precursor patch to 1/2): > > James Thanks, but I'm wondering about the call to sas_get_address(). It was there before the patch as well and now it's an undefined reference. Am I missing something here? Sure it can be guarded in the #if block. > > --- > > diff --git a/include/scsi/scsi_transport_sas.h > b/include/scsi/scsi_transport_sas.h > index 13c0b2b..0e1c50e 100644 > --- a/include/scsi/scsi_transport_sas.h > +++ b/include/scsi/scsi_transport_sas.h > @@ -15,8 +15,13 @@ static inline int is_sas_attached(struct scsi_device *sdev) > { > return 0; > } > +static inline int scsi_is_sas_rphy(const struct device *) > +{ > + return 0; > +} > #else > extern int is_sas_attached(struct scsi_device *sdev); > +extern int scsi_is_sas_rphy(const struct device *); > #endif > > static inline int sas_protocol_ata(enum sas_protocol proto) > @@ -202,7 +207,6 @@ extern int sas_rphy_add(struct sas_rphy *); > extern void sas_rphy_remove(struct sas_rphy *); > extern void sas_rphy_delete(struct sas_rphy *); > extern void sas_rphy_unlink(struct sas_rphy *); > -extern int scsi_is_sas_rphy(const struct device *); > > struct sas_port *sas_port_alloc(struct device *, int); > struct sas_port *sas_port_alloc_num(struct device *); > > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Johannes Thumshirn Storage jthumsh...@suse.de+49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ses: use scsi_is_sas_rphy instead of is_sas_attached
On Mon, 2016-08-15 at 22:11 +0800, kbuild test robot wrote: > Hi Johannes, > > [auto build test ERROR on scsi/for-next] > [also build test ERROR on v4.8-rc2 next-20160815] > [if your patch is applied to the wrong git tree, please drop us a > note to help improve the system] This is happening because scsi_is_sas_rphy wasn't designed to be used outside the SAS transport class, so it's failing when the ATTRs aren't defined. This is the way you fix it (needs to be a precursor patch to 1/2): James --- diff --git a/include/scsi/scsi_transport_sas.h b/include/scsi/scsi_transport_sas.h index 13c0b2b..0e1c50e 100644 --- a/include/scsi/scsi_transport_sas.h +++ b/include/scsi/scsi_transport_sas.h @@ -15,8 +15,13 @@ static inline int is_sas_attached(struct scsi_device *sdev) { return 0; } +static inline int scsi_is_sas_rphy(const struct device *) +{ + return 0; +} #else extern int is_sas_attached(struct scsi_device *sdev); +extern int scsi_is_sas_rphy(const struct device *); #endif static inline int sas_protocol_ata(enum sas_protocol proto) @@ -202,7 +207,6 @@ extern int sas_rphy_add(struct sas_rphy *); extern void sas_rphy_remove(struct sas_rphy *); extern void sas_rphy_delete(struct sas_rphy *); extern void sas_rphy_unlink(struct sas_rphy *); -extern int scsi_is_sas_rphy(const struct device *); struct sas_port *sas_port_alloc(struct device *, int); struct sas_port *sas_port_alloc_num(struct device *); -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] ses: use scsi_is_sas_rphy instead of is_sas_attached
Hi Johannes, [auto build test ERROR on scsi/for-next] [also build test ERROR on v4.8-rc2 next-20160815] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Johannes-Thumshirn/ses-use-scsi_is_sas_rphy-instead-of-is_sas_attached/20160815-165716 base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next config: s390-zfcpdump_defconfig (attached as .config) compiler: s390x-linux-gnu-gcc (Debian 5.4.0-6) 5.4.0 20160609 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=s390 All errors (new ones prefixed by >>): drivers/built-in.o: In function `ses_match_to_enclosure': >> drivers/scsi/ses.c:590: undefined reference to `scsi_is_sas_rphy' >> drivers/scsi/ses.c:591: undefined reference to `sas_get_address' vim +590 drivers/scsi/ses.c 584 struct efd efd = { 585 .addr = 0, 586 }; 587 588 ses_enclosure_data_process(edev, to_scsi_device(edev->edev.parent), 0); 589 > 590 if (scsi_is_sas_rphy(&sdev->sdev_gendev)) > 591 efd.addr = sas_get_address(sdev); 592 593 if (efd.addr) { 594 efd.dev = &sdev->sdev_gendev; --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: Binary data