[SCSI] fcoe: move packet handlers from fcoe_port to fcoe_interface
The packet handlers need to be tracked in fcoe_interface so there is only one set per net_device. When NPIV is enabled there will be multiple SCSI hosts and multiple fcoe_port structures on a single net_device. The packet handlers match by ethertype and netdev. If the same handler gets registered on a single netdev multiple times, the receive function will be called multiple times for each frame. Signed-off-by: Chris Leech <christopher.leech@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:

committed by
James Bottomley

parent
250249898a
commit
259ad85d8d
@@ -83,6 +83,8 @@ struct fcoe_interface {
|
||||
* moved out of fcoe_port */
|
||||
struct fcoe_port *priv;
|
||||
struct net_device *netdev;
|
||||
struct packet_type fcoe_packet_type;
|
||||
struct packet_type fip_packet_type;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -92,8 +94,6 @@ struct fcoe_interface {
|
||||
struct fcoe_port {
|
||||
struct fcoe_interface *fcoe;
|
||||
struct fc_exch_mgr *oem; /* offload exchange manger */
|
||||
struct packet_type fcoe_packet_type;
|
||||
struct packet_type fip_packet_type;
|
||||
struct sk_buff_head fcoe_pending_queue;
|
||||
u8 fcoe_pending_queue_active;
|
||||
struct timer_list timer; /* queue timer */
|
||||
|
Reference in New Issue
Block a user