|
@@ -50,7 +50,7 @@ unsigned int fcoe_debug_logging;
|
|
|
module_param_named(debug_logging, fcoe_debug_logging, int, S_IRUGO|S_IWUSR);
|
|
|
MODULE_PARM_DESC(debug_logging, "a bit mask of logging levels");
|
|
|
|
|
|
-#define FCOE_LOGGING 0x01 /* General logging, not categorized */
|
|
|
+#define FCOE_LOGGING 0x01 /* General logging, not categorized */
|
|
|
#define FCOE_NETDEV_LOGGING 0x02 /* Netdevice logging */
|
|
|
|
|
|
#define FCOE_CHECK_LOGGING(LEVEL, CMD) \
|
|
@@ -70,8 +70,13 @@ do { \
|
|
|
printk(KERN_INFO "fcoe: %s: " fmt, \
|
|
|
netdev->name, ##args);)
|
|
|
|
|
|
-/*
|
|
|
- * this percpu struct for fcoe
|
|
|
+/**
|
|
|
+ * struct fcoe_percpu_s - The per-CPU context for FCoE receive threads
|
|
|
+ * @thread: The thread context
|
|
|
+ * @fcoe_rx_list: The queue of pending packets to process
|
|
|
+ * @page: The memory page for calculating frame trailer CRCs
|
|
|
+ * @crc_eof_offset: The offset into the CRC page pointing to available
|
|
|
+ * memory for a new trailer
|
|
|
*/
|
|
|
struct fcoe_percpu_s {
|
|
|
struct task_struct *thread;
|
|
@@ -80,38 +85,62 @@ struct fcoe_percpu_s {
|
|
|
int crc_eof_offset;
|
|
|
};
|
|
|
|
|
|
-/*
|
|
|
- * an FCoE interface, 1:1 with netdev
|
|
|
+/**
|
|
|
+ * struct fcoe_interface - A FCoE interface
|
|
|
+ * @list: Handle for a list of FCoE interfaces
|
|
|
+ * @netdev: The associated net device
|
|
|
+ * @fcoe_packet_type: FCoE packet type
|
|
|
+ * @fip_packet_type: FIP packet type
|
|
|
+ * @ctlr: The FCoE controller (for FIP)
|
|
|
+ * @oem: The offload exchange manager for all local port
|
|
|
+ * instances associated with this port
|
|
|
+ * @kref: The kernel reference
|
|
|
+ *
|
|
|
+ * This structure is 1:1 with a net devive.
|
|
|
*/
|
|
|
struct fcoe_interface {
|
|
|
- struct list_head list;
|
|
|
- struct net_device *netdev;
|
|
|
- struct packet_type fcoe_packet_type;
|
|
|
- struct packet_type fip_packet_type;
|
|
|
- struct fcoe_ctlr ctlr;
|
|
|
- struct fc_exch_mgr *oem; /* offload exchange manager */
|
|
|
- struct kref kref;
|
|
|
+ struct list_head list;
|
|
|
+ struct net_device *netdev;
|
|
|
+ struct packet_type fcoe_packet_type;
|
|
|
+ struct packet_type fip_packet_type;
|
|
|
+ struct fcoe_ctlr ctlr;
|
|
|
+ struct fc_exch_mgr *oem;
|
|
|
+ struct kref kref;
|
|
|
};
|
|
|
|
|
|
-/*
|
|
|
- * the FCoE private structure that's allocated along with the
|
|
|
- * Scsi_Host and libfc fc_lport structures
|
|
|
+/**
|
|
|
+ * struct fcoe_port - The FCoE private structure
|
|
|
+ * @fcoe: The associated fcoe interface
|
|
|
+ * @lport: The associated local port
|
|
|
+ * @fcoe_pending_queue: The pending Rx queue of skbs
|
|
|
+ * @fcoe_pending_queue_active: Indicates if the pending queue is active
|
|
|
+ * @timer: The queue timer
|
|
|
+ * @destroy_work: Handle for work context
|
|
|
+ * (to prevent RTNL deadlocks)
|
|
|
+ * @data_srt_addr: Source address for data
|
|
|
+ *
|
|
|
+ * An instance of this structure is to be allocated along with the
|
|
|
+ * Scsi_Host and libfc fc_lport structures.
|
|
|
*/
|
|
|
struct fcoe_port {
|
|
|
struct fcoe_interface *fcoe;
|
|
|
- struct fc_lport *lport;
|
|
|
- struct sk_buff_head fcoe_pending_queue;
|
|
|
- u8 fcoe_pending_queue_active;
|
|
|
- struct timer_list timer; /* queue timer */
|
|
|
- struct work_struct destroy_work; /* to prevent rtnl deadlocks */
|
|
|
- u8 data_src_addr[ETH_ALEN];
|
|
|
+ struct fc_lport *lport;
|
|
|
+ struct sk_buff_head fcoe_pending_queue;
|
|
|
+ u8 fcoe_pending_queue_active;
|
|
|
+ struct timer_list timer;
|
|
|
+ struct work_struct destroy_work;
|
|
|
+ u8 data_src_addr[ETH_ALEN];
|
|
|
};
|
|
|
|
|
|
#define fcoe_from_ctlr(fip) container_of(fip, struct fcoe_interface, ctlr)
|
|
|
|
|
|
-static inline struct net_device *fcoe_netdev(const struct fc_lport *lp)
|
|
|
+/**
|
|
|
+ * fcoe_netdev() - Return the net device associated with a local port
|
|
|
+ * @lport: The local port to get the net device from
|
|
|
+ */
|
|
|
+static inline struct net_device *fcoe_netdev(const struct fc_lport *lport)
|
|
|
{
|
|
|
- return ((struct fcoe_port *)lport_priv(lp))->fcoe->netdev;
|
|
|
+ return ((struct fcoe_port *)lport_priv(lport))->fcoe->netdev;
|
|
|
}
|
|
|
|
|
|
#endif /* _FCOE_H_ */
|