diff options
author | Aaron Young <aaron.young@oracle.com> | 2016-03-15 11:35:37 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-03-18 19:33:00 -0400 |
commit | 31762eaa0d0804d34e297daad57cda45cbc6c961 (patch) | |
tree | de95945195c02d0f9e89bb343bd42c163032638d /drivers/net/ethernet/sun/sunvnet_common.h | |
parent | bnx2x: Prevent false warning for lack of FC NPIV (diff) | |
download | linux-dev-31762eaa0d0804d34e297daad57cda45cbc6c961.tar.xz linux-dev-31762eaa0d0804d34e297daad57cda45cbc6c961.zip |
ldmvsw: Split sunvnet driver into common code
Split sunvnet.c into sunvnet.c and sunvnet_common.c.
Details:
Since the sunvnet and ldmvsw drivers will both use common sunvnet code,
move the functions (and support functions) anticipated to be common code
from sunvnet.c to sunvnet_common.c. Similarly, sunvnet.h was renamed to
sunvnet_common.h. The sunvnet_common.c code will be compiled into the
kernel and act as a library of functions that are linked by either
(or both) drivers when loaded.
Function names for external functions in sunvnet_common.c (to be
called by both the sunvnet and ldmvsw drivers) were tagged with a "_common"
suffix to clearly designate them as common functions.
No functional changes as of yet... just moved code verbatim to the new
sunvnet_common.c/h files.
Makefile/Kconfig support added to build sunvnet_common.c file. The code
is included in the kernel if SUN_LDOMS is defined/selected.
NOTE - per the SubmittingPatches documentation, since the code was just
moved from one file another, the code was NOT checkpatch'd in this commit
to aid in review.
Signed-off-by: Aaron Young <aaron.young@oracle.com>
Signed-off-by: Rashmi Narasimhan <rashmi.narasimhan@oracle.com>
Reviewed-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Reviewed-by: Alexandre Chartre <Alexandre.Chartre@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | drivers/net/ethernet/sun/sunvnet_common.h (renamed from drivers/net/ethernet/sun/sunvnet.h) | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/drivers/net/ethernet/sun/sunvnet.h b/drivers/net/ethernet/sun/sunvnet_common.h index 01ca78191683..c29c5269703d 100644 --- a/drivers/net/ethernet/sun/sunvnet.h +++ b/drivers/net/ethernet/sun/sunvnet_common.h @@ -1,20 +1,12 @@ -#ifndef _SUNVNET_H -#define _SUNVNET_H +#ifndef _SUNVNETCOMMON_H +#define _SUNVNETCOMMON_H #include <linux/interrupt.h> -#define DESC_NCOOKIES(entry_size) \ - ((entry_size) - sizeof(struct vio_net_desc)) - -/* length of time before we decide the hardware is borked, - * and dev->tx_timeout() should be called to fix the problem - */ -#define VNET_TX_TIMEOUT (5 * HZ) - /* length of time (or less) we expect pending descriptors to be marked * as VIO_DESC_DONE and skbs ready to be freed */ -#define VNET_CLEAN_TIMEOUT ((HZ/100)+1) +#define VNET_CLEAN_TIMEOUT ((HZ / 100) + 1) #define VNET_MAXPACKET (65535ULL + ETH_HLEN + VLAN_HLEN) #define VNET_TX_RING_SIZE 512 @@ -29,7 +21,9 @@ */ #define VNET_PACKET_SKIP 6 -#define VNET_MAXCOOKIES (VNET_MAXPACKET/PAGE_SIZE + 1) +#define VNET_MAXCOOKIES (VNET_MAXPACKET / PAGE_SIZE + 1) + +#define VNET_MAX_TXQS 16 struct vnet_tx_entry { struct sk_buff *skb; @@ -111,4 +105,29 @@ struct vnet { int nports; }; -#endif /* _SUNVNET_H */ +/* Common funcs */ +void sunvnet_clean_timer_expire_common(unsigned long port0); +int sunvnet_open_common(struct net_device *dev); +int sunvnet_close_common(struct net_device *dev); +void sunvnet_set_rx_mode_common(struct net_device *dev); +int sunvnet_set_mac_addr_common(struct net_device *dev, void *p); +void sunvnet_tx_timeout_common(struct net_device *dev); +int sunvnet_change_mtu_common(struct net_device *dev, int new_mtu); +int sunvnet_start_xmit_common(struct sk_buff *skb, struct net_device *dev); +u16 sunvnet_select_queue_common(struct net_device *dev, + struct sk_buff *skb, + void *accel_priv, + select_queue_fallback_t fallback); +#ifdef CONFIG_NET_POLL_CONTROLLER +void sunvnet_poll_controller_common(struct net_device *dev); +#endif +void sunvnet_event_common(void *arg, int event); +int sunvnet_send_attr_common(struct vio_driver_state *vio); +int sunvnet_handle_attr_common(struct vio_driver_state *vio, void *arg); +void sunvnet_handshake_complete_common(struct vio_driver_state *vio); +int sunvnet_poll_common(struct napi_struct *napi, int budget); +void sunvnet_port_free_tx_bufs_common(struct vnet_port *port); +void sunvnet_port_add_txq_common(struct vnet_port *port); +void sunvnet_port_rm_txq_common(struct vnet_port *port); + +#endif /* _SUNVNETCOMMON_H */ |