All of lore.kernel.org
 help / color / mirror / Atom feed
From: Damien Le Moal <dlemoal@kernel.org>
To: Geert Uytterhoeven <geert@linux-m68k.org>,
	Igor Pylypiv <ipylypiv@google.com>
Cc: Niklas Cassel <cassel@kernel.org>,
	John Garry <john.g.garry@oracle.com>,
	Jason Yan <yanaijie@huawei.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Jack Wang <jinpu.wang@cloud.ionos.com>,
	Hannes Reinecke <hare@suse.de>,
	Xiang Chen <chenxiang66@hisilicon.com>,
	Artur Paszkiewicz <artur.paszkiewicz@intel.com>,
	Bart Van Assche <bvanassche@acm.org>,
	TJ Adams <tadamsjr@google.com>,
	linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v8 2/7] scsi: libsas: Define NCQ Priority sysfs attributes for SATA devices
Date: Tue, 26 Mar 2024 19:05:35 +0900	[thread overview]
Message-ID: <6ce6edde-67f0-4452-aee2-602af3d71ecd@kernel.org> (raw)
In-Reply-To: <CAMuHMdWxVbT=f+kZ58urwGhYD9RfBnu7u8oLAyrx_riU8OGt0w@mail.gmail.com>

On 3/26/24 18:53, Geert Uytterhoeven wrote:
> Hi Igor,
> 
> On Thu, Mar 7, 2024 at 10:55 PM Igor Pylypiv <ipylypiv@google.com> wrote:
>> Libata sysfs attributes cannot be used for libsas managed SATA devices
>> because the ata_port location is different for libsas.
>>
>> Defined sysfs attributes (visible for SATA devices only):
>> - /sys/block/sda/device/ncq_prio_enable
>> - /sys/block/sda/device/ncq_prio_supported
>>
>> The newly defined attributes will pass the correct ata_port to libata
>> helper functions.
>>
>> Reviewed-by: John Garry <john.g.garry@oracle.com>
>> Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
>> Reviewed-by: Jason Yan <yanaijie@huawei.com>
>> Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
> 
> Thanks for your patch, which is now commit b4d3ddd2df7531e3 ("scsi:
> libsas: Define NCQ Priority sysfs attributes for SATA devices")
> in scsi-mkp/for-next
> 
>> --- a/drivers/scsi/libsas/sas_ata.c
>> +++ b/drivers/scsi/libsas/sas_ata.c
> 
>> +
>> +DEVICE_ATTR(ncq_prio_supported, S_IRUGO, sas_ncq_prio_supported_show, NULL);
>> +
> 
> [...]
> 
>> +
>> +DEVICE_ATTR(ncq_prio_enable, S_IRUGO | S_IWUSR,
>> +           sas_ncq_prio_enable_show, sas_ncq_prio_enable_store);
>> +
> 
> When both CONFIG_SCSI_SAS_ATA and CONFIG_SATA_HOST are enabled:
> 
> aarch64-linux-gnu-ld: drivers/ata/libata-sata.o:(.data+0x110):
> multiple definition of `dev_attr_ncq_prio_supported';
> drivers/scsi/libsas/sas_ata.o:(.data+0x260): first defined here
> aarch64-linux-gnu-ld: drivers/ata/libata-sata.o:(.data+0xd8): multiple
> definition of `dev_attr_ncq_prio_enable';
> drivers/scsi/libsas/sas_ata.o:(.data+0x228): first defined here
> 
> Making both new DEVICE_ATTR() declarations static doesn't work,
> as <linux/libata.h> contains a forward declaration for the existing global
> dev_attr_ncq_prio_supported in libata:
> 
> In file included from include/linux/async.h:14,
>                  from drivers/scsi/libsas/sas_ata.c:12:
> include/linux/device.h:156:33: error: static declaration of
> ‘dev_attr_ncq_prio_supported’ follows non-static declaration
>   156 |         struct device_attribute dev_attr_##_name =
> __ATTR(_name, _mode, _show, _store)
>       |                                 ^~~~~~~~~
> drivers/scsi/libsas/sas_ata.c:984:8: note: in expansion of macro ‘DEVICE_ATTR’
>   984 | static DEVICE_ATTR(ncq_prio_supported, S_IRUGO,
> sas_ncq_prio_supported_show,
>       |        ^~~~~~~~~~~
> In file included from include/scsi/sas_ata.h:13,
>                  from drivers/scsi/libsas/sas_ata.c:15:
> include/linux/libata.h:508:32: note: previous declaration of
> ‘dev_attr_ncq_prio_supported’ with type ‘struct device_attribute’
>   508 | extern struct device_attribute dev_attr_ncq_prio_supported;
>       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from include/linux/async.h:14,
>                  from drivers/scsi/libsas/sas_ata.c:12:
> include/linux/device.h:156:33: error: static declaration of
> ‘dev_attr_ncq_prio_enable’ follows non-static declaration
>   156 |         struct device_attribute dev_attr_##_name =
> __ATTR(_name, _mode, _show, _store)
>       |                                 ^~~~~~~~~
> drivers/scsi/libsas/sas_ata.c:1023:8: note: in expansion of macro ‘DEVICE_ATTR’
>  1023 | static DEVICE_ATTR(ncq_prio_enable, S_IRUGO | S_IWUSR,
>       |        ^~~~~~~~~~~
> In file included from include/scsi/sas_ata.h:13,
>                  from drivers/scsi/libsas/sas_ata.c:15:
> include/linux/libata.h:509:32: note: previous declaration of
> ‘dev_attr_ncq_prio_enable’ with type ‘struct device_attribute’
>   509 | extern struct device_attribute dev_attr_ncq_prio_enable;
>       |                                ^~~~~~~~~~~~~~~~~~~~~~~~
> 
> Perhaps the new attributes can be renamed?
> Alternatively, the DEVICE_ATTR() can be open-coded, so the actual
> device_attribute structures are named differently.

I think we need to do that because I do not want the attribute name to change in
sysfs as that creates hell for the user to control a feature that is identical
beside the different transport (which the user should not care about).
I will send something asap.

> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 

-- 
Damien Le Moal
Western Digital Research


  reply	other threads:[~2024-03-26 10:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-07 21:44 [PATCH v8 0/7] NCQ Priority sysfs sttributes for libsas Igor Pylypiv
2024-03-07 21:44 ` [PATCH v8 1/7] ata: libata-sata: Factor out NCQ Priority configuration helpers Igor Pylypiv
2024-03-08 10:03   ` Niklas Cassel
2024-03-12  6:17     ` Damien Le Moal
2024-03-12 15:37       ` Niklas Cassel
2024-03-12 15:37   ` Niklas Cassel
2024-03-07 21:44 ` [PATCH v8 2/7] scsi: libsas: Define NCQ Priority sysfs attributes for SATA devices Igor Pylypiv
2024-03-08 10:10   ` Niklas Cassel
2024-03-26  9:53   ` Geert Uytterhoeven
2024-03-26 10:05     ` Damien Le Moal [this message]
2024-03-26 10:06     ` Damien Le Moal
2024-03-26 10:16       ` Geert Uytterhoeven
2024-03-26 11:52         ` Damien Le Moal
2024-03-07 21:44 ` [PATCH v8 3/7] scsi: pm80xx: Add libsas SATA sysfs attributes group Igor Pylypiv
2024-03-07 21:44 ` [PATCH v8 4/7] scsi: mvsas: " Igor Pylypiv
2024-03-08 10:09   ` Niklas Cassel
2024-03-07 21:44 ` [PATCH v8 5/7] scsi: hisi_sas: " Igor Pylypiv
2024-03-08 10:09   ` Niklas Cassel
2024-03-07 21:44 ` [PATCH v8 6/7] scsi: aic94xx: " Igor Pylypiv
2024-03-08 10:10   ` Niklas Cassel
2024-03-07 21:44 ` [PATCH v8 7/7] scsi: isci: " Igor Pylypiv
2024-03-25 20:02 ` [PATCH v8 0/7] NCQ Priority sysfs sttributes for libsas Martin K. Petersen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6ce6edde-67f0-4452-aee2-602af3d71ecd@kernel.org \
    --to=dlemoal@kernel.org \
    --cc=artur.paszkiewicz@intel.com \
    --cc=bvanassche@acm.org \
    --cc=cassel@kernel.org \
    --cc=chenxiang66@hisilicon.com \
    --cc=geert@linux-m68k.org \
    --cc=hare@suse.de \
    --cc=ipylypiv@google.com \
    --cc=jejb@linux.ibm.com \
    --cc=jinpu.wang@cloud.ionos.com \
    --cc=john.g.garry@oracle.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=tadamsjr@google.com \
    --cc=yanaijie@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.