remove open-coded skb_cow_head.
Subsystems (7)
cover remove open-coded skb_cow_head.
As per http://marc.info/?l=linux-netdev&m=139440579104701.
Francois Romieu (17):
atl1: remove open-coded skb_cow_head.
atl1c: remove open-coded skb_cow_head.
atl1e: remove open-coded skb_cow_head.
igb: remove open-coded skb_cow_head.
ixgb: remove open-coded skb_cow_head.
ixgbvf: remove open-coded skb_cow_head.
ixgbe: remove open-coded skb_cow_head.
ixgbevf: remove open-coded skb_cow_head.
e1000: remove open-coded skb_cow_head.
e1000e: remove open-coded skb_cow_head.
i40e: remove open-coded skb_cow_head.
i40evf: remove open-coded skb_cow_head.
jme: remove open-coded skb_cow_head.
qlge: remove open-coded skb_cow_head.
bna: remove open-coded skb_cow_head.
tg3: remove open-coded skb_cow_head.
wimax/i2400m: remove open-coded skb_cow_head.
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 14 +++++++------- drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 14 +++++++------- drivers/net/ethernet/atheros/atlx/atl1.c | 15 +++++++-------- drivers/net/ethernet/broadcom/tg3.c | 3 +-- drivers/net/ethernet/brocade/bna/bnad.c | 10 ++++------ drivers/net/ethernet/intel/e1000/e1000_main.c | 11 +++++------ drivers/net/ethernet/intel/e1000e/netdev.c | 10 ++++------ drivers/net/ethernet/intel/i40e/i40e_txrx.c | 18 +++++++++--------- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 10 ++++------ drivers/net/ethernet/intel/igb/igb_main.c | 9 ++++----- drivers/net/ethernet/intel/igbvf/netdev.c | 16 +++++++--------- drivers/net/ethernet/intel/ixgb/ixgb_main.c | 9 ++++----- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 13 ++++++------- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 9 ++++----- drivers/net/ethernet/jme.c | 16 ++-------------- drivers/net/ethernet/qlogic/qlge/qlge_main.c | 9 ++++----- drivers/net/wimax/i2400m/netdev.c | 3 +-- 17 files changed, 80 insertions(+), 109 deletions(-)
Signature · 1 line
1.9.0
PATCH 1/17 atl1: remove open-coded skb_cow_head.
--- drivers/net/ethernet/atheros/atlx/atl1.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-)
drivers/net/ethernet/atheros/atlx/atl1.c +7 -8
@@ -2118,18 +2118,17 @@ static u16 atl1_tpd_avail(struct atl1_tpd_ring *tpd_ring) }static int atl1_tso (struct atl1_adapter *adapter,struct sk_buff *skb, -struct tx_packet_desc *ptpd) +struct tx_packet_desc *ptpd) {u8 hdr_len, ip_off;u32 real_len; -int err;if (skb_shinfo (skb)->gso_size) { -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (unlikely (err)) -return -1 ; - } +int err; + + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err;if (skb->protocol ==htons (ETH_P_IP )) {struct iphdr *iph =ip_hdr (skb);
@@ -2175,7 +2174,7 @@ static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb,return 3 ; } } -return false; +return 0 ; } static int atl1_tx_csum(struct atl1_adapter *adapter, struct sk_buff *skb,
Signature · 1 line
1.9.0
PATCH 2/17 atl1c: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
drivers/net/ethernet/atheros/atl1c/atl1c_main.c +7 -7
@@ -1973,17 +1973,17 @@ static int atl1c_tso_csum(struct atl1c_adapter *adapter, enum atl1c_trans_queue type) {struct pci_dev *pdev = adapter->pdev; +unsigned short offload_type;u8 hdr_len;u32 real_len; -unsigned short offload_type; -int err;if (skb_is_gso (skb)) { -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (unlikely (err)) -return -1 ; - } +int err; + + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err; + offload_type =skb_shinfo (skb)->gso_type;if (offload_type &SKB_GSO_TCPV4 ) {
Signature · 1 line
1.9.0
PATCH 3/17 atl1e: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
drivers/net/ethernet/atheros/atl1e/atl1e_main.c +7 -7
@@ -1641,17 +1641,17 @@ static u16 atl1e_cal_tdp_req(const struct sk_buff *skb)static int atl1e_tso_csum (struct atl1e_adapter *adapter,struct sk_buff *skb,struct atl1e_tpd_desc *tpd) { +unsigned short offload_type;u8 hdr_len;u32 real_len; -unsigned short offload_type; -int err;if (skb_is_gso (skb)) { -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (unlikely (err)) -return -1 ; - } +int err; + + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err; + offload_type =skb_shinfo (skb)->gso_type;if (offload_type &SKB_GSO_TCPV4 ) {
Signature · 1 line
1.9.0
PATCH 4/17 igb: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/igb/igb_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
drivers/net/ethernet/intel/igb/igb_main.c +4 -5
@@ -4605,6 +4605,7 @@ static int igb_tso(struct igb_ring *tx_ring,struct sk_buff *skb = first->skb;u32 vlan_macip_lens, type_tucmd;u32 mss_l4len_idx, l4len; +int err;if (skb->ip_summed !=CHECKSUM_PARTIAL )return 0 ;
@@ -4612,11 +4613,9 @@ static int igb_tso(struct igb_ring *tx_ring,if (!skb_is_gso (skb))return 0 ; -if (skb_header_cloned (skb)) { -int err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err;/* ADV DTYP TUCMD MKRLOC/ISCSIHEDLEN */ type_tucmd =E1000_ADVTXD_TUCMD_L4T_TCP ;
Signature · 1 line
1.9.0
Re: [PATCH net-next 04/17] igb: remove open-coded skb_cow_head.
Quoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/igb/igb_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
Thanks Francois, I have added your patch to my queue.
PATCH 5/17 ixgb: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/ixgb/ixgb_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
drivers/net/ethernet/intel/ixgb/ixgb_main.c +4 -5
@@ -1225,12 +1225,11 @@ ixgb_tso(struct ixgb_adapter *adapter, struct sk_buff *skb)if (likely (skb_is_gso (skb))) {struct ixgb_buffer *buffer_info;struct iphdr *iph; +int err; -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err; hdr_len =skb_transport_offset (skb) +tcp_hdrlen (skb); mss =skb_shinfo (skb)->gso_size;
Signature · 1 line
1.9.0
A message that is not in the archive (sent off-list or not yet received): 1396097224.3122.1.camel@joe-AO722
Re: [PATCH net-next 05/17] ixgb: remove open-coded skb_cow_head.
Quoted 16 lines · Joe Perches
Quoted 4 lines · Francois Romieu
struct
ixgb_adapter*adapter, structsk_buff*skb)if (likely(skb_is_gso(skb))) { struct ixgb_buffer *buffer_info; struct iphdr *iph;drivers/net/ethernet/intel/ixgb/ixgb_main.c ixgb_tso(struct ixgb_adapter *adapter, struct sk_buff *skb)
Quoted 10 lines
drivers/net/ethernet/intel/ixgb/ixgb_main.c +4
-5+int err; -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err
Quoted 3 lines
It seems in many instances you're adding
an unnecessary declaration of err that
shadows an already declared err
I take back the many. This seems to be the only one.
Re: [PATCH net-next 05/17] ixgb: remove open-coded skb_cow_head.
In reply to Francois RomieuQuoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/ixgb/ixgb_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
Thanks Francois, I have added your patch to my queue.
PATCH 6/17 ixgbvf: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/igbvf/netdev.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)
drivers/net/ethernet/intel/igbvf/netdev.c +7 -9
@@ -1910,20 +1910,18 @@ static int igbvf_tso(struct igbvf_adapter *adapter, struct sk_buff *skb, u32 tx_flags, u8 *hdr_len) { struct e1000_adv_tx_context_desc *context_desc; -unsigned int i; -int err;struct igbvf_buffer *buffer_info;u32 info =0 , tu_cmd =0 ;u32 mss_l4len_idx, l4len; +unsigned int i; +int err; + *hdr_len =0 ; -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) { -dev_err (&adapter->pdev->dev, -"igbvf_tso returning an error\n" ); -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) { +dev_err (&adapter->pdev->dev,"igbvf_tso returning an error\n" ); +return err; } l4len =tcp_hdrlen (skb);
Signature · 1 line
1.9.0
Re: [PATCH net-next 06/17] ixgbvf: remove open-coded skb_cow_head.
Quoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/igbvf/netdev.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)
Thanks Francois, I have added your patch to my queue.
Re: [PATCH net-next 06/17] ixgbvf: remove open-coded skb_cow_head.
In reply to Francois RomieuQuoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/igbvf/netdev.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)
Just noticed the title should be "igbvf: ..." since there is no ixgbvf. Francois, I have fixed up this patch in my queue.
PATCH 7/17 ixgbe: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +6 -7
@@ -6506,6 +6506,7 @@ static int ixgbe_tso(struct ixgbe_ring *tx_ring,struct sk_buff *skb = first->skb;u32 vlan_macip_lens, type_tucmd;u32 mss_l4len_idx, l4len; +int err;if (skb->ip_summed !=CHECKSUM_PARTIAL )return 0 ;
@@ -6513,11 +6514,9 @@ static int ixgbe_tso(struct ixgbe_ring *tx_ring,if (!skb_is_gso (skb))return 0 ; -if (skb_header_cloned (skb)) { -int err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err;/* ADV DTYP TUCMD MKRLOC/ISCSIHEDLEN */ type_tucmd =IXGBE_ADVTXD_TUCMD_L4T_TCP ;
@@ -7072,8 +7071,8 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb,IXGBE_TX_FLAGS_VLAN_PRIO_SHIFT ;if (tx_flags &IXGBE_TX_FLAGS_SW_VLAN ) {struct vlan_ethhdr *vhdr; -if (skb_header_cloned (skb) && -pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC )) + +if (skb_cow_head (skb,0 )) goto out_drop; vhdr = (struct vlan_ethhdr *)skb->data; vhdr->h_vlan_TCI = htons(tx_flags >>
Signature · 1 line
1.9.0
Re: [PATCH net-next 07/17] ixgbe: remove open-coded skb_cow_head.
Quoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
Thanks Francois, I have added your patch to my queue.
PATCH 8/17 ixgbevf: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +4 -5
@@ -2838,6 +2838,7 @@ static int ixgbevf_tso(struct ixgbevf_ring *tx_ring,struct sk_buff *skb = first->skb;u32 vlan_macip_lens, type_tucmd;u32 mss_l4len_idx, l4len; +int err;if (skb->ip_summed !=CHECKSUM_PARTIAL )return 0 ;
@@ -2845,11 +2846,9 @@ static int ixgbevf_tso(struct ixgbevf_ring *tx_ring,if (!skb_is_gso (skb))return 0 ; -if (skb_header_cloned (skb)) { -int err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err;/* ADV DTYP TUCMD MKRLOC/ISCSIHEDLEN */ type_tucmd =IXGBE_ADVTXD_TUCMD_L4T_TCP ;
Signature · 1 line
1.9.0
Re: [PATCH net-next 08/17] ixgbevf: remove open-coded skb_cow_head.
Quoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
Thanks Francois, I have added your patch to my queue.
PATCH 9/17 e1000: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/e1000/e1000_main.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
drivers/net/ethernet/intel/e1000/e1000_main.c +5 -6
@@ -2682,14 +2682,13 @@ static int e1000_tso(struct e1000_adapter *adapter,u32 cmd_length =0 ;u16 ipcse =0 , tucse, mss;u8 ipcss, ipcso, tucss, tucso, hdr_len; -int err;if (skb_is_gso (skb)) { -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } +int err; + + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err; hdr_len =skb_transport_offset (skb) +tcp_hdrlen (skb); mss =skb_shinfo (skb)->gso_size;
Signature · 1 line
1.9.0
Re: [PATCH net-next 09/17] e1000: remove open-coded skb_cow_head.
Quoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/e1000/e1000_main.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
Thanks Francois, I have added your patch to my queue.
PATCH 10/17 e1000e: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/e1000e/netdev.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
drivers/net/ethernet/intel/e1000e/netdev.c +4 -6
@@ -5090,16 +5090,14 @@ static int e1000_tso(struct e1000_ring *tx_ring, struct sk_buff *skb)u32 cmd_length =0 ;u16 ipcse =0 , mss;u8 ipcss, ipcso, tucss, tucso, hdr_len; +int err;if (!skb_is_gso (skb))return 0 ; -if (skb_header_cloned (skb)) { -int err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); - -if (err) -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err; hdr_len =skb_transport_offset (skb) +tcp_hdrlen (skb); mss =skb_shinfo (skb)->gso_size;
Signature · 1 line
1.9.0
Re: [PATCH net-next 10/17] e1000e: remove open-coded skb_cow_head.
Quoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/e1000e/netdev.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
Thanks Francois, I have added your patch to my queue.
PATCH 11/17 i40e: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
drivers/net/ethernet/intel/i40e/i40e_txrx.c +9 -9
@@ -1713,9 +1713,11 @@ static int i40e_tx_prepare_vlan_flags(struct sk_buff *skb,I40E_TX_FLAGS_VLAN_PRIO_SHIFT ;if (tx_flags &I40E_TX_FLAGS_SW_VLAN ) {struct vlan_ethhdr *vhdr; -if (skb_header_cloned (skb) && -pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC )) -return -ENOMEM ; +int rc; + + rc =skb_cow_head (skb,0 ); +if (rc <0 ) +return rc; vhdr = (struct vlan_ethhdr *)skb->data; vhdr->h_vlan_TCI =htons (tx_flags >>I40E_TX_FLAGS_VLAN_SHIFT );
@@ -1743,20 +1745,18 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb, u64 *cd_type_cmd_tso_mss, u32 *cd_tunneling) {u32 cd_cmd, cd_tso_len, cd_mss; +struct ipv6hdr *ipv6h;struct tcphdr *tcph;struct iphdr *iph;u32 l4len;int err; -struct ipv6hdr *ipv6h;if (!skb_is_gso (skb))return 0 ; -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err;if (protocol ==htons (ETH_P_IP )) { iph = skb->encapsulation ?inner_ip_hdr (skb) :ip_hdr (skb);
Signature · 1 line
1.9.0
Re: [PATCH net-next 11/17] i40e: remove open-coded skb_cow_head.
Quoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
Thanks Francois, I have added your patch to my queue.
PATCH 12/17 i40evf: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
drivers/net/ethernet/intel/i40evf/i40e_txrx.c +4 -6
@@ -1114,20 +1114,18 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb, u64 *cd_type_cmd_tso_mss, u32 *cd_tunneling) {u32 cd_cmd, cd_tso_len, cd_mss; +struct ipv6hdr *ipv6h;struct tcphdr *tcph;struct iphdr *iph;u32 l4len;int err; -struct ipv6hdr *ipv6h;if (!skb_is_gso (skb))return 0 ; -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err;if (protocol ==htons (ETH_P_IP )) { iph = skb->encapsulation ?inner_ip_hdr (skb) :ip_hdr (skb);
Signature · 1 line
1.9.0
Re: [PATCH net-next 12/17] i40evf: remove open-coded skb_cow_head.
Quoted 6 lines · Francois Romieu
Signed-off-by Francois Romieu <[email protected]>Cc Jesse Brandeburg <[email protected]>Cc Jeff Kirsher <[email protected]>--- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
Thanks Francois, I have added your patch to my queue.
PATCH 13/17 jme: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/jme.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-)
drivers/net/ethernet/jme.c +2 -14
@@ -2054,19 +2054,6 @@ jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx) }static int -jme_expand_header (struct jme_adapter *jme,struct sk_buff *skb) -{ -if (unlikely (skb_shinfo (skb)->gso_size && -skb_header_cloned (skb) && -pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ))) { -dev_kfree_skb_any (skb); -return -1 ; - } - -return 0 ; -} - -static int jme_tx_tso (struct sk_buff *skb,__le16 *mss,u8 *flags) { *mss =cpu_to_le16 (skb_shinfo (skb)->gso_size <<TXDESC_MSS_SHIFT );
@@ -2225,7 +2212,8 @@ jme_start_xmit(struct sk_buff *skb, struct net_device *netdev)struct jme_adapter *jme =netdev_priv (netdev);int idx; -if (unlikely (jme_expand_header (jme, skb))) { +if (unlikely (skb_is_gso (skb) &&skb_cow_head (skb,0 ))) { +dev_kfree_skb_any (skb); ++(NET_STAT (jme).tx_dropped);return NETDEV_TX_OK ; }
Signature · 1 line
1.9.0
PATCH 14/17 qlge: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/qlogic/qlge/qlge_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
drivers/net/ethernet/qlogic/qlge/qlge_main.c +4 -5
@@ -2556,11 +2556,10 @@ static int ql_tso(struct sk_buff *skb, struct ob_mac_tso_iocb_req *mac_iocb_ptr)if (skb_is_gso (skb)) {int err; -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) -return err; - } + + err =skb_cow_head (skb,0 ); +if (err <0 ) +return err; mac_iocb_ptr->opcode =OPCODE_OB_MAC_TSO_IOCB ; mac_iocb_ptr->flags3 |=OB_MAC_TSO_IOCB_IC ;
Signature · 1 line
1.9.0
PATCH 15/17 bna: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/brocade/bna/bnad.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
drivers/net/ethernet/brocade/bna/bnad.c +4 -6
@@ -2496,12 +2496,10 @@ bnad_tso_prepare(struct bnad *bnad, struct sk_buff *skb) {int err; -if (skb_header_cloned (skb)) { - err =pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC ); -if (err) { -BNAD_UPDATE_CTR (bnad, tso_err); -return err; - } + err =skb_cow_head (skb,0 ); +if (err <0 ) { +BNAD_UPDATE_CTR (bnad, tso_err); +return err; }/*
Signature · 1 line
1.9.0
PATCH 16/17 tg3: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/ethernet/broadcom/tg3.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/ethernet/broadcom/tg3.c +1 -2
@@ -7918,8 +7918,7 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)struct iphdr *iph;u32 tcp_opt_len, hdr_len; -if (skb_header_cloned (skb) && -pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC )) +if (skb_cow_head (skb,0 )) goto drop; iph =ip_hdr (skb);
Signature · 1 line
1.9.0
PATCH 17/17 wimax/i2400m: remove open-coded skb_cow_head.
In reply to Francois Romieu--- drivers/net/wimax/i2400m/netdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/wimax/i2400m/netdev.c +1 -2
@@ -374,8 +374,7 @@ netdev_tx_t i2400m_hard_start_xmit(struct sk_buff *skb,d_fnstart (3 , dev,"(skb %p net_dev %p)\n" , skb, net_dev); -if (skb_header_cloned (skb) && -pskb_expand_head (skb,0 ,0 ,GFP_ATOMIC )) +if (skb_cow_head (skb,0 )) goto drop;if (i2400m->state ==I2400M_SS_IDLE )
Signature · 1 line
1.9.0
David Miller
maintainerFrom: Francois Romieu <[email protected]>
Date: Sat, 29 Mar 2014 12:26:13 +0100
Quoted 1 line
All applied outside of the Intel changes Jeff took into his tree, thanks.