]> www.infradead.org Git - users/hch/misc.git/commitdiff
scsi: libsas: Add dev_parent_is_expander() helper
authorNiklas Cassel <cassel@kernel.org>
Thu, 14 Aug 2025 17:32:18 +0000 (19:32 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 19 Aug 2025 02:08:30 +0000 (22:08 -0400)
Many libsas drivers check if the parent of the device is an expander.
Create a helper that the libsas drivers will use in follow up commits.

Suggested-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Link: https://lore.kernel.org/r/20250814173215.1765055-15-cassel@kernel.org
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libsas/sas_expander.c
include/scsi/libsas.h

index 869b5d4db44cb6b93b0f601576c3b771775e5218..d953225f6cc24c0600a16c90d3c6ae8c0573534c 100644 (file)
@@ -1313,10 +1313,7 @@ static int sas_check_parent_topology(struct domain_device *child)
        int i;
        int res = 0;
 
-       if (!child->parent)
-               return 0;
-
-       if (!dev_is_expander(child->parent->dev_type))
+       if (!dev_parent_is_expander(child))
                return 0;
 
        parent_ex = &child->parent->ex_dev;
index ba460b6c0374de0094322b76992550e4e8d0247d..8d38565e99fa1c4828733e29bca601e8dcce990b 100644 (file)
@@ -203,6 +203,14 @@ static inline bool dev_is_expander(enum sas_device_type type)
               type == SAS_FANOUT_EXPANDER_DEVICE;
 }
 
+static inline bool dev_parent_is_expander(struct domain_device *dev)
+{
+       if (!dev->parent)
+               return false;
+
+       return dev_is_expander(dev->parent->dev_type);
+}
+
 static inline void INIT_SAS_WORK(struct sas_work *sw, void (*fn)(struct work_struct *))
 {
        INIT_WORK(&sw->work, fn);