Message ID | 20090302234337.12241.52123.stgit@lost.foo-projects.org |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Mon, 02 Mar 2009 15:44:04 -0800 > From: Alexander Duyck <alexander.h.duyck@intel.com> > > Remove skb_orphan call from igb driver as it can cause multiple issues due > to the fact that it is calling the desctructor and removing the skb from > the socket prior to transmission. > > The call was added to improve performance but did so by allowing the skb to > be removed from the socket which gave the socket more window space to > transmit. The performance gain is not worth the extra problems that this > kind of workaround can introduce as this could lead to a potential DoS if a > UDP stream decided to monopolize the transmit path. > > Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> > Acked-by: Mitch Williams <mitch.a.williams@intel.com> > Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Applied. -- 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 6cae258..78558f8 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c @@ -3258,14 +3258,6 @@ static int igb_xmit_frame_ring_adv(struct sk_buff *skb, if (unlikely(shtx->hardware)) { shtx->in_progress = 1; tx_flags |= IGB_TX_FLAGS_TSTAMP; - } else if (likely(!shtx->software)) { - /* - * TODO: can this be solved in dev.c:dev_hard_start_xmit()? - * There are probably unmodified driver which do something - * like this and thus don't work in combination with - * SOF_TIMESTAMPING_TX_SOFTWARE. - */ - skb_orphan(skb); } if (adapter->vlgrp && vlan_tx_tag_present(skb)) { @@ -4253,9 +4245,6 @@ static void igb_tx_hwtstamp(struct igb_adapter *adapter, struct sk_buff *skb) timecompare_transform(&adapter->compare, ns); skb_tstamp_tx(skb, &shhwtstamps); } - - /* delayed orphaning: skb_tstamp_tx() needs the socket */ - skb_orphan(skb); } }