Commit 042ebd29 authored by Jason Yan's avatar Jason Yan Committed by Martin K. Petersen

scsi: libsas: kill useless ha_event and do some cleanup

The ha_event now has only one event HAE_RESET, and this event does
nothing. Kill it and do some cleanup.

This is a preparation for enhance libsas hotplug feature in the next
patches.
Signed-off-by: default avatarJason Yan <yanaijie@huawei.com>
Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
CC: Johannes Thumshirn <jthumshirn@suse.de>
CC: Ewan Milne <emilne@redhat.com>
CC: Christoph Hellwig <hch@lst.de>
CC: Tomas Henzl <thenzl@redhat.com>
CC: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 7eccdf00
...@@ -721,11 +721,8 @@ int asd_init_hw(struct asd_ha_struct *asd_ha) ...@@ -721,11 +721,8 @@ int asd_init_hw(struct asd_ha_struct *asd_ha)
*/ */
static void asd_chip_reset(struct asd_ha_struct *asd_ha) static void asd_chip_reset(struct asd_ha_struct *asd_ha)
{ {
struct sas_ha_struct *sas_ha = &asd_ha->sas_ha;
ASD_DPRINTK("chip reset for %s\n", pci_name(asd_ha->pcidev)); ASD_DPRINTK("chip reset for %s\n", pci_name(asd_ha->pcidev));
asd_chip_hardrst(asd_ha); asd_chip_hardrst(asd_ha);
sas_ha->notify_ha_event(sas_ha, HAE_RESET);
} }
/* ---------- Done List Routines ---------- */ /* ---------- Done List Routines ---------- */
......
...@@ -1074,7 +1074,6 @@ static int hisi_sas_controller_reset(struct hisi_hba *hisi_hba) ...@@ -1074,7 +1074,6 @@ static int hisi_sas_controller_reset(struct hisi_hba *hisi_hba)
hisi_sas_release_tasks(hisi_hba); hisi_sas_release_tasks(hisi_hba);
spin_unlock_irqrestore(&hisi_hba->lock, flags); spin_unlock_irqrestore(&hisi_hba->lock, flags);
sas_ha->notify_ha_event(sas_ha, HAE_RESET);
clear_bit(HISI_SAS_REJECT_CMD_BIT, &hisi_hba->flags); clear_bit(HISI_SAS_REJECT_CMD_BIT, &hisi_hba->flags);
/* Init and wait for PHYs to come up and all libsas event finished. */ /* Init and wait for PHYs to come up and all libsas event finished. */
......
...@@ -24,10 +24,6 @@ ...@@ -24,10 +24,6 @@
#include "sas_dump.h" #include "sas_dump.h"
static const char *sas_hae_str[] = {
[0] = "HAE_RESET",
};
static const char *sas_porte_str[] = { static const char *sas_porte_str[] = {
[0] = "PORTE_BYTES_DMAED", [0] = "PORTE_BYTES_DMAED",
[1] = "PORTE_BROADCAST_RCVD", [1] = "PORTE_BROADCAST_RCVD",
...@@ -53,12 +49,6 @@ void sas_dprint_phye(int phyid, enum phy_event pe) ...@@ -53,12 +49,6 @@ void sas_dprint_phye(int phyid, enum phy_event pe)
SAS_DPRINTK("phy%d: phy event: %s\n", phyid, sas_phye_str[pe]); SAS_DPRINTK("phy%d: phy event: %s\n", phyid, sas_phye_str[pe]);
} }
void sas_dprint_hae(struct sas_ha_struct *sas_ha, enum ha_event he)
{
SAS_DPRINTK("ha %s: %s event\n", dev_name(sas_ha->dev),
sas_hae_str[he]);
}
void sas_dump_port(struct asd_sas_port *port) void sas_dump_port(struct asd_sas_port *port)
{ {
SAS_DPRINTK("port%d: class:0x%x\n", port->id, port->class); SAS_DPRINTK("port%d: class:0x%x\n", port->id, port->class);
......
...@@ -26,5 +26,4 @@ ...@@ -26,5 +26,4 @@
void sas_dprint_porte(int phyid, enum port_event pe); void sas_dprint_porte(int phyid, enum port_event pe);
void sas_dprint_phye(int phyid, enum phy_event pe); void sas_dprint_phye(int phyid, enum phy_event pe);
void sas_dprint_hae(struct sas_ha_struct *sas_ha, enum ha_event he);
void sas_dump_port(struct asd_sas_port *port); void sas_dump_port(struct asd_sas_port *port);
...@@ -124,14 +124,6 @@ void sas_enable_revalidation(struct sas_ha_struct *ha) ...@@ -124,14 +124,6 @@ void sas_enable_revalidation(struct sas_ha_struct *ha)
mutex_unlock(&ha->disco_mutex); mutex_unlock(&ha->disco_mutex);
} }
static int notify_ha_event(struct sas_ha_struct *sas_ha, enum ha_event event)
{
BUG_ON(event >= HA_NUM_EVENTS);
return sas_queue_event(event, &sas_ha->pending,
&sas_ha->ha_events[event].work, sas_ha);
}
static int notify_port_event(struct asd_sas_phy *phy, enum port_event event) static int notify_port_event(struct asd_sas_phy *phy, enum port_event event)
{ {
struct sas_ha_struct *ha = phy->ha; struct sas_ha_struct *ha = phy->ha;
...@@ -154,18 +146,6 @@ int sas_notify_phy_event(struct asd_sas_phy *phy, enum phy_event event) ...@@ -154,18 +146,6 @@ int sas_notify_phy_event(struct asd_sas_phy *phy, enum phy_event event)
int sas_init_events(struct sas_ha_struct *sas_ha) int sas_init_events(struct sas_ha_struct *sas_ha)
{ {
static const work_func_t sas_ha_event_fns[HA_NUM_EVENTS] = {
[HAE_RESET] = sas_hae_reset,
};
int i;
for (i = 0; i < HA_NUM_EVENTS; i++) {
INIT_SAS_WORK(&sas_ha->ha_events[i].work, sas_ha_event_fns[i]);
sas_ha->ha_events[i].ha = sas_ha;
}
sas_ha->notify_ha_event = notify_ha_event;
sas_ha->notify_port_event = notify_port_event; sas_ha->notify_port_event = notify_port_event;
sas_ha->notify_phy_event = sas_notify_phy_event; sas_ha->notify_phy_event = sas_notify_phy_event;
......
...@@ -106,17 +106,6 @@ void sas_hash_addr(u8 *hashed, const u8 *sas_addr) ...@@ -106,17 +106,6 @@ void sas_hash_addr(u8 *hashed, const u8 *sas_addr)
hashed[2] = r & 0xFF; hashed[2] = r & 0xFF;
} }
/* ---------- HA events ---------- */
void sas_hae_reset(struct work_struct *work)
{
struct sas_ha_event *ev = to_sas_ha_event(work);
struct sas_ha_struct *ha = ev->ha;
clear_bit(HAE_RESET, &ha->pending);
}
int sas_register_ha(struct sas_ha_struct *sas_ha) int sas_register_ha(struct sas_ha_struct *sas_ha)
{ {
int error = 0; int error = 0;
...@@ -154,7 +143,6 @@ int sas_register_ha(struct sas_ha_struct *sas_ha) ...@@ -154,7 +143,6 @@ int sas_register_ha(struct sas_ha_struct *sas_ha)
INIT_LIST_HEAD(&sas_ha->eh_ata_q); INIT_LIST_HEAD(&sas_ha->eh_ata_q);
return 0; return 0;
Undo_ports: Undo_ports:
sas_unregister_ports(sas_ha); sas_unregister_ports(sas_ha);
Undo_phys: Undo_phys:
......
...@@ -60,11 +60,6 @@ enum sas_phy_type { ...@@ -60,11 +60,6 @@ enum sas_phy_type {
* so when updating/adding events here, please also * so when updating/adding events here, please also
* update the other file too. * update the other file too.
*/ */
enum ha_event {
HAE_RESET = 0U,
HA_NUM_EVENTS = 1,
};
enum port_event { enum port_event {
PORTE_BYTES_DMAED = 0U, PORTE_BYTES_DMAED = 0U,
PORTE_BROADCAST_RCVD = 1, PORTE_BROADCAST_RCVD = 1,
...@@ -362,18 +357,6 @@ struct scsi_core { ...@@ -362,18 +357,6 @@ struct scsi_core {
}; };
struct sas_ha_event {
struct sas_work work;
struct sas_ha_struct *ha;
};
static inline struct sas_ha_event *to_sas_ha_event(struct work_struct *work)
{
struct sas_ha_event *ev = container_of(work, typeof(*ev), work.work);
return ev;
}
enum sas_ha_state { enum sas_ha_state {
SAS_HA_REGISTERED, SAS_HA_REGISTERED,
SAS_HA_DRAINING, SAS_HA_DRAINING,
...@@ -383,9 +366,6 @@ enum sas_ha_state { ...@@ -383,9 +366,6 @@ enum sas_ha_state {
struct sas_ha_struct { struct sas_ha_struct {
/* private: */ /* private: */
struct sas_ha_event ha_events[HA_NUM_EVENTS];
unsigned long pending;
struct list_head defer_q; /* work queued while draining */ struct list_head defer_q; /* work queued while draining */
struct mutex drain_mutex; struct mutex drain_mutex;
unsigned long state; unsigned long state;
...@@ -415,7 +395,6 @@ struct sas_ha_struct { ...@@ -415,7 +395,6 @@ struct sas_ha_struct {
* their siblings when forming wide ports */ * their siblings when forming wide ports */
/* LLDD calls these to notify the class of an event. */ /* LLDD calls these to notify the class of an event. */
int (*notify_ha_event)(struct sas_ha_struct *, enum ha_event);
int (*notify_port_event)(struct asd_sas_phy *, enum port_event); int (*notify_port_event)(struct asd_sas_phy *, enum port_event);
int (*notify_phy_event)(struct asd_sas_phy *, enum phy_event); int (*notify_phy_event)(struct asd_sas_phy *, enum phy_event);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment