As sas_put_device() needs to be called in lldd, it is now moved to libsas.h Signed-off-by: Xingui Yang <yangxingui@xxxxxxxxxx> --- drivers/scsi/libsas/sas_discover.c | 1 + drivers/scsi/libsas/sas_internal.h | 6 ------ include/scsi/libsas.h | 6 ++++++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/libsas/sas_discover.c b/drivers/scsi/libsas/sas_discover.c index 951bdc554a10..43a65d0542ab 100644 --- a/drivers/scsi/libsas/sas_discover.c +++ b/drivers/scsi/libsas/sas_discover.c @@ -309,6 +309,7 @@ void sas_free_device(struct kref *kref) kfree(dev); } +EXPORT_SYMBOL_GPL(sas_free_device); static void sas_unregister_common_dev(struct asd_sas_port *port, struct domain_device *dev) { diff --git a/drivers/scsi/libsas/sas_internal.h b/drivers/scsi/libsas/sas_internal.h index 03d6ec1eb970..a1e364deb3ee 100644 --- a/drivers/scsi/libsas/sas_internal.h +++ b/drivers/scsi/libsas/sas_internal.h @@ -98,7 +98,6 @@ int sas_get_phy_attached_dev(struct domain_device *dev, int phy_id, u8 *sas_addr, enum sas_device_type *type); int sas_try_ata_reset(struct asd_sas_phy *phy); -void sas_free_device(struct kref *kref); void sas_destruct_devices(struct asd_sas_port *port); extern const work_func_t sas_phy_event_fns[PHY_NUM_EVENTS]; @@ -217,9 +216,4 @@ static inline struct domain_device *sas_alloc_device(void) return dev; } -static inline void sas_put_device(struct domain_device *dev) -{ - kref_put(&dev->kref, sas_free_device); -} - #endif /* _SAS_INTERNAL_H_ */ diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index ba460b6c0374..f67137f50980 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h @@ -425,6 +425,12 @@ static inline void sas_put_local_phy(struct sas_phy *phy) put_device(&phy->dev); } +void sas_free_device(struct kref *kref); +static inline void sas_put_device(struct domain_device *dev) +{ + kref_put(&dev->kref, sas_free_device); +} + #ifdef CONFIG_SCSI_SAS_HOST_SMP int try_test_sas_gpio_gp_bit(unsigned int od, u8 *data, u8 index, u8 count); #else -- 2.33.0