Message ID | 20090320101631.17663.63853.stgit@lost.foo-projects.org |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Hi Jeff, ... On Fri, Mar 20, 2009 at 03:16:31AM -0700, Jeff Kirsher wrote: > [...] > > drivers/net/igb/igb_main.c | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c > index 7c4481b..c14d569 100644 > --- a/drivers/net/igb/igb_main.c > +++ b/drivers/net/igb/igb_main.c > @@ -3008,6 +3008,17 @@ static inline bool igb_tx_csum_adv(struct igb_adapter *adapter, > tu_cmd |= (E1000_TXD_CMD_DEXT | E1000_ADVTXD_DTYP_CTXT); > > if (skb->ip_summed == CHECKSUM_PARTIAL) { > + __be16 protocol; > + > + if (skb->protocol == cpu_to_be16(ETH_P_8021Q)) { > + const struct vlan_ethhdr *vhdr = > + (const struct vlan_ethhdr*)skb->data; > + > + protocol = vhdr->h_vlan_encapsulated_proto; > + } else { > + protocol = skb->protocol; > + } > + > switch (skb->protocol) { ^^^^^^^^^^^^^ This has the same merge error as the e1000e version, it should be just protocol here, not skb->protocol... Arthur -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Mar 20, 2009 at 8:27 AM, Arthur Jones <ajones@riverbed.com> wrote: > Hi Jeff, ... > > On Fri, Mar 20, 2009 at 03:16:31AM -0700, Jeff Kirsher wrote: >> [...] >> >> drivers/net/igb/igb_main.c | 11 +++++++++++ >> 1 files changed, 11 insertions(+), 0 deletions(-) >> >> diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c >> index 7c4481b..c14d569 100644 >> --- a/drivers/net/igb/igb_main.c >> +++ b/drivers/net/igb/igb_main.c >> @@ -3008,6 +3008,17 @@ static inline bool igb_tx_csum_adv(struct igb_adapter *adapter, >> tu_cmd |= (E1000_TXD_CMD_DEXT | E1000_ADVTXD_DTYP_CTXT); >> >> if (skb->ip_summed == CHECKSUM_PARTIAL) { >> + __be16 protocol; >> + >> + if (skb->protocol == cpu_to_be16(ETH_P_8021Q)) { >> + const struct vlan_ethhdr *vhdr = >> + (const struct vlan_ethhdr*)skb->data; >> + >> + protocol = vhdr->h_vlan_encapsulated_proto; >> + } else { >> + protocol = skb->protocol; >> + } >> + >> switch (skb->protocol) { > ^^^^^^^^^^^^^ > This has the same merge error as the e1000e version, > it should be just protocol here, not skb->protocol... > > Arthur > -- Sorry, when I merged your patch into my tree, that is when the merge error occurred.
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Fri, 20 Mar 2009 03:16:31 -0700 > When the 82575 is fed 802.1q packets, it chokes with > an error of the form: > > igb 0000:08:00.1 partial checksum but proto=81! ... > Signed-off-by: Arthur Jones <ajones@riverbed.com> > Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > + > switch (skb->protocol) { > case cpu_to_be16(ETH_P_IP): > tu_cmd |= E1000_ADVTXD_TUCMD_IPV4; Applied with skb->protocol fixed to be just plain 'protocol'. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index 7c4481b..c14d569 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c @@ -3008,6 +3008,17 @@ static inline bool igb_tx_csum_adv(struct igb_adapter *adapter, tu_cmd |= (E1000_TXD_CMD_DEXT | E1000_ADVTXD_DTYP_CTXT); if (skb->ip_summed == CHECKSUM_PARTIAL) { + __be16 protocol; + + if (skb->protocol == cpu_to_be16(ETH_P_8021Q)) { + const struct vlan_ethhdr *vhdr = + (const struct vlan_ethhdr*)skb->data; + + protocol = vhdr->h_vlan_encapsulated_proto; + } else { + protocol = skb->protocol; + } + switch (skb->protocol) { case cpu_to_be16(ETH_P_IP): tu_cmd |= E1000_ADVTXD_TUCMD_IPV4;