Robert Love
efaf5c085d
[SCSI] libfc: check for err when recv and state is incorrect
...
If we've just created an interface and the an rport is
logging in we may have a request on the wire (say PRLI).
If we destroy the interface, we'll go through each rport
on the disc->rports list and set each rport's state to NONE.
Then the lport will reset the EM. The EM reset will send a
CLOSED event to the prli_resp() handler which will notice
that the state != PRLI. In this case it frees the frame
pointer, decrements the refcount and unlocks the rport.
The problem is that there isn't a frame in this case. It's
just a pointer with an embedded error code. The free causes
an Oops.
This patch moves the error checking to be before the state
checking.
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-03-06 15:44:36 -06:00
..
2008-12-29 11:24:12 -06:00
2008-10-23 11:42:16 -05:00
2009-01-02 10:22:16 -06:00
2008-12-29 11:24:11 -06:00
2009-02-21 20:29:38 -06:00
2008-12-29 11:24:17 -06:00
2009-03-06 15:37:49 -06:00
2009-02-10 11:15:18 -05:00
2009-03-06 15:44:36 -06:00
2009-01-16 10:17:09 -05:00
2009-02-10 11:15:19 -05:00
2008-12-01 11:15:55 -06:00
2009-01-05 12:17:42 -06:00
2009-02-10 11:15:20 -05:00
2009-01-25 07:55:13 -06:00
2008-10-09 08:56:13 +02:00
2008-10-23 11:42:18 -05:00
2008-10-23 11:42:17 -05:00
2009-01-06 11:28:08 +01:00
2009-01-02 12:16:18 -06:00
2009-01-02 10:22:16 -06:00
2008-10-16 16:52:06 +02:00
2008-12-29 11:24:12 -06:00
2008-10-14 10:23:27 -07:00
2008-12-29 11:24:12 -06:00
2008-12-29 11:24:24 -06:00
2008-10-13 09:28:48 -04:00
2008-11-15 11:10:14 -06:00
2008-12-29 11:24:12 -06:00
2008-12-29 11:24:35 -06:00
2008-12-29 11:24:14 -06:00
2008-12-29 11:24:12 -06:00
2008-10-09 08:56:13 +02:00
2008-10-09 08:56:13 +02:00
2008-11-30 10:03:36 -08:00
2008-10-09 08:56:13 +02:00
2009-01-02 12:16:18 -06:00
2009-01-02 10:22:16 -06:00
2009-02-21 20:29:36 -06:00
2008-12-29 11:24:12 -06:00
2008-12-29 11:24:12 -06:00
2008-12-29 11:24:12 -06:00
2008-12-29 11:24:12 -06:00
2009-01-16 10:17:09 -05:00
2009-01-02 10:22:16 -06:00
2008-10-09 08:56:13 +02:00
2008-12-29 11:24:23 -06:00
2008-12-29 11:24:22 -06:00
2009-01-08 16:25:14 +11:00
2009-01-02 10:22:16 -06:00
2009-01-13 10:41:34 -06:00
2009-02-10 11:15:19 -05:00
2008-12-29 11:24:19 -06:00
2008-12-28 20:00:03 +01:00
2009-01-02 16:12:51 +01:00
2009-01-06 11:28:08 +01:00
2008-11-05 12:40:23 -05:00
2009-01-02 12:10:04 -06:00
2008-10-09 08:56:13 +02:00
2008-12-29 11:24:12 -06:00
2009-01-02 10:22:16 -06:00
2008-12-29 11:24:11 -06:00
2008-10-16 09:24:44 -07:00
2009-01-16 16:15:15 +11:00
2009-01-06 11:28:09 +01:00
2008-12-29 11:24:12 -06:00
2008-10-11 12:39:35 -07:00
2009-01-02 10:22:16 -06:00
2009-01-02 10:22:16 -06:00
2009-01-13 10:45:44 -06:00
2009-01-08 16:27:31 -08:00
2009-01-02 10:22:16 -06:00
2009-02-21 20:29:38 -06:00
2008-10-23 11:42:17 -05:00
2008-10-13 09:28:52 -04:00
2009-02-10 11:15:17 -05:00
2009-01-02 10:22:16 -06:00
2008-10-10 10:53:26 -07:00
2009-01-06 09:43:33 -06:00
2009-01-02 10:22:16 -06:00
2009-01-02 10:22:16 -06:00
2008-12-29 11:24:32 -06:00
2009-01-02 10:22:16 -06:00
2009-01-13 10:48:11 -06:00
2009-01-05 09:06:23 -06:00
2009-03-05 10:34:37 -06:00
2008-10-15 08:41:28 -04:00
2009-01-02 10:22:16 -06:00
2009-02-10 11:15:17 -05:00
2009-01-02 10:58:41 -06:00
2009-01-02 10:22:16 -06:00
2009-01-02 10:22:16 -06:00
2008-12-29 11:24:24 -06:00
2008-10-20 08:52:41 -07:00
2008-12-29 11:24:24 -06:00
2009-01-02 12:06:52 -06:00
2009-01-02 12:02:25 -06:00
2008-12-29 11:24:11 -06:00
2008-10-23 11:42:19 -05:00
2008-12-29 11:24:12 -06:00
2008-12-29 11:24:14 -06:00
2008-12-29 11:24:14 -06:00
2008-12-29 11:24:12 -06:00
2009-01-02 10:22:16 -06:00