|
@@ -659,7 +659,15 @@ dequeue_mid(struct mid_q_entry *mid, bool malformed)
|
|
|
mid->mid_state = MID_RESPONSE_RECEIVED;
|
|
|
else
|
|
|
mid->mid_state = MID_RESPONSE_MALFORMED;
|
|
|
- list_del_init(&mid->qhead);
|
|
|
+ /*
|
|
|
+ * Trying to handle/dequeue a mid after the send_recv()
|
|
|
+ * function has finished processing it is a bug.
|
|
|
+ */
|
|
|
+ if (mid->mid_flags & MID_DELETED)
|
|
|
+ printk_once(KERN_WARNING
|
|
|
+ "trying to dequeue a deleted mid\n");
|
|
|
+ else
|
|
|
+ list_del_init(&mid->qhead);
|
|
|
spin_unlock(&GlobalMid_Lock);
|
|
|
}
|
|
|
|