[SCSI] libfc: recognize incoming FLOGI for point-to-point mode
authorJoe Eykholt <jeykholt@cisco.com>
Sat, 13 Mar 2010 00:08:07 +0000 (16:08 -0800)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 11 Apr 2010 14:23:37 +0000 (09:23 -0500)
When receiving a FLOGI request from a point-to-point peer,
the D_ID of 0xfffffe was not recognized as belonging to one
of the lports, so it was dropped.

Change fc_vport_id_lookup() to treat d_id 0xfffffe as a match.

Signed-off-by: Joe Eykholt <jeykholt@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libfc/fc_npiv.c

index c68f6c7341c27a439b00cade6fc718e4488219b6..45b6f1e2df92eecff08e2ac04bb9129f3ec8fbb5 100644 (file)
@@ -72,6 +72,9 @@ struct fc_lport *fc_vport_id_lookup(struct fc_lport *n_port, u32 port_id)
        if (fc_host_port_id(n_port->host) == port_id)
                return n_port;
 
+       if (port_id == FC_FID_FLOGI)
+               return n_port;          /* for point-to-point */
+
        mutex_lock(&n_port->lp_mutex);
        list_for_each_entry(vn_port, &n_port->vports, list) {
                if (fc_host_port_id(vn_port->host) == port_id) {