Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1727270 > unrolled thread

[PATCH v4 09/11] libsas: libsas: use flush_workqueue to process disco events synchronously

Started byJason Yan <yanaijie@huawei.com>
First post2017-09-06 11:20 +0200
Last post2017-09-06 11:20 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH v4 09/11] libsas: libsas: use flush_workqueue to process disco events synchronously Jason Yan <yanaijie@huawei.com> - 2017-09-06 11:20 +0200

#1727270 — [PATCH v4 09/11] libsas: libsas: use flush_workqueue to process disco events synchronously

FromJason Yan <yanaijie@huawei.com>
Date2017-09-06 11:20 +0200
Subject[PATCH v4 09/11] libsas: libsas: use flush_workqueue to process disco events synchronously
Message-ID<umEF3-81v-5@gated-at.bofh.it>
Use flush_workqueue to insure the disco and revalidate events processed synchronously.

Signed-off-by: Jason Yan <yanaijie@huawei.com>
CC: John Garry <john.garry@huawei.com>
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>
---
 drivers/scsi/libsas/sas_port.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/scsi/libsas/sas_port.c b/drivers/scsi/libsas/sas_port.c
index 9326628..64722f4 100644
--- a/drivers/scsi/libsas/sas_port.c
+++ b/drivers/scsi/libsas/sas_port.c
@@ -192,6 +192,7 @@ static void sas_form_port(struct asd_sas_phy *phy)
 		si->dft->lldd_port_formed(phy);
 
 	sas_discover_event(phy->port, DISCE_DISCOVER_DOMAIN);
+	flush_workqueue(sas_ha->disco_q);
 }
 
 /**
@@ -277,6 +278,9 @@ void sas_porte_broadcast_rcvd(struct work_struct *work)
 
 	SAS_DPRINTK("broadcast received: %d\n", prim);
 	sas_discover_event(phy->port, DISCE_REVALIDATE_DOMAIN);
+
+	if (phy->port)
+		flush_workqueue(phy->port->ha->disco_q);
 }
 
 void sas_porte_link_reset_err(struct work_struct *work)
-- 
2.5.0

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web