iw_cxgb4: detect fatal errors while creating listening filters
authorHariprasad S <hariprasad@chelsio.com>
Tue, 8 Sep 2015 04:26:57 +0000 (09:56 +0530)
committerDoug Ledford <dledford@redhat.com>
Wed, 21 Oct 2015 21:16:10 +0000 (17:16 -0400)
In c4iw_create_listen(), if we're using listen filters, then bail out
of the busy loop if the device becomes fatally dead

Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/cxgb4/cm.c

index debc39d2cbc2a61d66901dd20ef531703717ed29..24efe52f1d68c9019b9701ebfdd893d5ff67c00c 100644 (file)
@@ -3260,6 +3260,10 @@ static int create_server4(struct c4iw_dev *dev, struct c4iw_listen_ep *ep)
                                sin->sin_addr.s_addr, sin->sin_port, 0,
                                ep->com.dev->rdev.lldi.rxq_ids[0], 0, 0);
                        if (err == -EBUSY) {
+                               if (c4iw_fatal_error(&ep->com.dev->rdev)) {
+                                       err = -EIO;
+                                       break;
+                               }
                                set_current_state(TASK_UNINTERRUPTIBLE);
                                schedule_timeout(usecs_to_jiffies(100));
                        }