diff options
Diffstat (limited to 'drivers/net/s2io.h')
-rw-r--r-- | drivers/net/s2io.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h index 5e351c0..e68fdf7 100644 --- a/drivers/net/s2io.h +++ b/drivers/net/s2io.h @@ -546,6 +546,7 @@ struct RxD_t { #define RXD_OWN_XENA s2BIT(7) #define RXD_T_CODE (s2BIT(12)|s2BIT(13)|s2BIT(14)|s2BIT(15)) #define RXD_FRAME_PROTO vBIT(0xFFFF,24,8) +#define RXD_FRAME_VLAN_TAG s2BIT(24) #define RXD_FRAME_PROTO_IPV4 s2BIT(27) #define RXD_FRAME_PROTO_IPV6 s2BIT(28) #define RXD_FRAME_IP_FRAG s2BIT(29) @@ -829,10 +830,11 @@ struct lro { int sg_num; int in_use; __be16 window; + u16 vlan_tag; u32 cur_tsval; __be32 cur_tsecr; u8 saw_ts; -}; +} ____cacheline_aligned; /* These flags represent the devices temporary state */ enum s2io_device_state_t @@ -1129,7 +1131,7 @@ static int s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro, struct RxD_t *rxdp, struct s2io_nic *sp); static void clear_lro_session(struct lro *lro); -static void queue_rx_frame(struct sk_buff *skb); +static void queue_rx_frame(struct sk_buff *skb, u16 vlan_tag); static void update_L3L4_header(struct s2io_nic *sp, struct lro *lro); static void lro_append_pkt(struct s2io_nic *sp, struct lro *lro, struct sk_buff *skb, u32 tcp_len); |