aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptsas.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/message/fusion/mptsas.c')
-rw-r--r--drivers/message/fusion/mptsas.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 190bd940bb01..90660bfa148c 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -1534,6 +1534,16 @@ mptscsih_send_raid_event(MPT_ADAPTER *ioc,
1534 schedule_work(&ev->work); 1534 schedule_work(&ev->work);
1535} 1535}
1536 1536
1537/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
1538/* work queue thread to clear the persitency table */
1539static void
1540mptscsih_sas_persist_clear_table(void * arg)
1541{
1542 MPT_ADAPTER *ioc = (MPT_ADAPTER *)arg;
1543
1544 mptbase_sas_persist_operation(ioc, MPI_SAS_OP_CLEAR_NOT_PRESENT);
1545}
1546
1537static int 1547static int
1538mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply) 1548mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
1539{ 1549{
@@ -1552,6 +1562,12 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
1552 mptscsih_send_raid_event(ioc, 1562 mptscsih_send_raid_event(ioc,
1553 (EVENT_DATA_RAID *)reply->Data); 1563 (EVENT_DATA_RAID *)reply->Data);
1554 break; 1564 break;
1565 case MPI_EVENT_PERSISTENT_TABLE_FULL:
1566 INIT_WORK(&ioc->mptscsih_persistTask,
1567 mptscsih_sas_persist_clear_table,
1568 (void *)ioc);
1569 schedule_work(&ioc->mptscsih_persistTask);
1570 break;
1555 default: 1571 default:
1556 rc = mptscsih_event_process(ioc, reply); 1572 rc = mptscsih_event_process(ioc, reply);
1557 break; 1573 break;