summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/netronome/nfp/nfp_net.h
diff options
context:
space:
mode:
authorJakub Kicinski2019-06-05 23:11:34 +0200
committerDavid S. Miller2019-06-06 23:13:39 +0200
commitd3e4dfe060cc818262425b8606b502f79c3d9116 (patch)
tree327974a5e8a764a6aad74a91837db6b8b24a7830 /drivers/net/ethernet/netronome/nfp/nfp_net.h
parentnfp: parse the mailbox cmsg TLV (diff)
downloadkernel-qcow2-linux-d3e4dfe060cc818262425b8606b502f79c3d9116.tar.gz
kernel-qcow2-linux-d3e4dfe060cc818262425b8606b502f79c3d9116.tar.xz
kernel-qcow2-linux-d3e4dfe060cc818262425b8606b502f79c3d9116.zip
nfp: add support for sending control messages via mailbox
FW may prefer to handle some communication via a mailbox or the vNIC may simply not have a control queue (VFs). Add a way of exchanging ccm-compatible messages via a mailbox. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_net.h')
-rw-r--r--drivers/net/ethernet/netronome/nfp/nfp_net.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net.h b/drivers/net/ethernet/netronome/nfp/nfp_net.h
index e006b3abc9f6..134d2709cd70 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net.h
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net.h
@@ -563,6 +563,10 @@ struct nfp_net_dp {
* @tx_bar: Pointer to mapped TX queues
* @rx_bar: Pointer to mapped FL/RX queues
* @tlv_caps: Parsed TLV capabilities
+ * @mbox_cmsg: Common Control Message via vNIC mailbox state
+ * @mbox_cmsg.queue: CCM mbox queue of pending messages
+ * @mbox_cmsg.wq: CCM mbox wait queue of waiting processes
+ * @mbox_cmsg.tag: CCM mbox message tag allocator
* @debugfs_dir: Device directory in debugfs
* @vnic_list: Entry on device vNIC list
* @pdev: Backpointer to PCI device
@@ -638,6 +642,12 @@ struct nfp_net {
struct nfp_net_tlv_caps tlv_caps;
+ struct {
+ struct sk_buff_head queue;
+ wait_queue_head_t wq;
+ u16 tag;
+ } mbox_cmsg;
+
struct dentry *debugfs_dir;
struct list_head vnic_list;