Now LLDDs have to implement lldd_port_deformed method otherwise NULL
dereference will happen. Make it optional and remove the dummy
implementation in hisi_sas.

Signed-off-by: Jason Yan <yanai...@huawei.com>
CC: John Garry <john.ga...@huawei.com>
CC: Johannes Thumshirn <jthumsh...@suse.de>
CC: Ewan Milne <emi...@redhat.com>
CC: Christoph Hellwig <h...@lst.de>
CC: Tomas Henzl <the...@redhat.com>
CC: Dan Williams <dan.j.willi...@intel.com>
CC: Hannes Reinecke <h...@suse.com>
Acked-by: John Garry <john.ga...@huawei.com>
Reviewed-by: Hannes Reinecke <h...@suse.com>
Reviewed-by: Johannes Thumshirn <jthumsh...@suse.de>
Reviewed-by: Christoph Hellwig <h...@lst.de>
---
 drivers/scsi/hisi_sas/hisi_sas_main.c | 9 ++-------
 drivers/scsi/libsas/sas_discover.c    | 2 +-
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c 
b/drivers/scsi/hisi_sas/hisi_sas_main.c
index a4e2e6aa9a6b..1975c9266978 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -1861,10 +1861,6 @@ static void hisi_sas_port_formed(struct asd_sas_phy 
*sas_phy)
        hisi_sas_port_notify_formed(sas_phy);
 }
 
-static void hisi_sas_port_deformed(struct asd_sas_phy *sas_phy)
-{
-}
-
 static int hisi_sas_write_gpio(struct sas_ha_struct *sha, u8 reg_type,
                        u8 reg_index, u8 reg_count, u8 *write_data)
 {
@@ -1954,10 +1950,9 @@ static struct sas_domain_function_template 
hisi_sas_transport_ops = {
        .lldd_I_T_nexus_reset   = hisi_sas_I_T_nexus_reset,
        .lldd_lu_reset          = hisi_sas_lu_reset,
        .lldd_query_task        = hisi_sas_query_task,
-       .lldd_clear_nexus_ha = hisi_sas_clear_nexus_ha,
+       .lldd_clear_nexus_ha    = hisi_sas_clear_nexus_ha,
        .lldd_port_formed       = hisi_sas_port_formed,
-       .lldd_port_deformed = hisi_sas_port_deformed,
-       .lldd_write_gpio = hisi_sas_write_gpio,
+       .lldd_write_gpio        = hisi_sas_write_gpio,
 };
 
 void hisi_sas_init_mem(struct hisi_hba *hisi_hba)
diff --git a/drivers/scsi/libsas/sas_discover.c 
b/drivers/scsi/libsas/sas_discover.c
index 0148ae62a52a..dde433aa59c2 100644
--- a/drivers/scsi/libsas/sas_discover.c
+++ b/drivers/scsi/libsas/sas_discover.c
@@ -260,7 +260,7 @@ static void sas_suspend_devices(struct work_struct *work)
         * phy_list is not being mutated
         */
        list_for_each_entry(phy, &port->phy_list, port_phy_el) {
-               if (si->dft->lldd_port_formed)
+               if (si->dft->lldd_port_deformed)
                        si->dft->lldd_port_deformed(phy);
                phy->suspended = 1;
                port->suspended = 1;
-- 
2.14.4

Reply via email to