On 2023/05/05 18:14, yangxingui wrote: > > > On 2023/5/5 16:25, John Garry wrote: >> On 05/05/2023 09:17, Damien Le Moal wrote: >>>> --- a/drivers/ata/libata-scsi.c >>>> +++ b/drivers/ata/libata-scsi.c >>>> @@ -26,6 +26,7 @@ >>>> #include <scsi/scsi_device.h> >>>> #include <scsi/scsi_tcq.h> >>>> #include <scsi/scsi_transport.h> >>>> +#include <scsi/libsas.h> >> >> hmmm... is it really acceptable that libata is referencing libsas? I >> didn't think that it would be. libsas uses libata, not the other way >> around. > Yeah, I didn't expect that either. Is there any other way? If so, is > patch v1 OK? >> >>>> #include <linux/libata.h> >>>> #include <linux/hdreg.h> >>>> #include <linux/uaccess.h> >>>> @@ -2745,10 +2746,17 @@ static struct ata_device >>>> *__ata_scsi_find_dev(struct ata_port *ap, >>>> * Associated ATA device, or %NULL if not found. >>>> */ >>>> struct ata_device * >>>> -ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device >>>> *scsidev) >>> Why drop the const ? >>> >>>> +ata_scsi_find_dev(struct ata_port *ap, struct scsi_device *scsidev) >>>> { >>>> - struct ata_device *dev = __ata_scsi_find_dev(ap, scsidev); >>>> + struct ata_device *dev; >>>> + >>>> + if (ap->flags & ATA_FLAG_SAS_HOST) { >> >> And this is SAS host. Not necessarily libsas (even though with ipr >> libata usage gone, it would be the only user). > Add a new flag only for libsas? ATA_FLAG_SAS_HOST is now only used by libsas. So we should rename this flag to ATA_FLAG_LIBSAS_HOST to be clear about it. And looking at how the flag is used (in only 2 places), I wonder if we could get rid of it entirely... With the ipr driver gone, there is a lot of cleanup in libata that can be done, especially around EH code. Will be working on that. > > Thanks, > Xingui > . >> >>>> + struct domain_device *ddev = sdev_to_domain_dev(scsidev); >>>> + >>>> + return sas_to_ata_dev(ddev); >>> Do you really need the ddev variable ? Also, this really should be a >>> libsas >>> helper. I beleive this pattern is repeated in several places in >>> libsas, so that >>> would nicely clean things up. >>> >> Thanks, >> John >> . -- Damien Le Moal Western Digital Research