>-----Original Message----- >From: Ben Hutchings [mailto:ben@xxxxxxxxxxxxxxx] >Sent: Friday, March 14, 2014 5:19 PM >To: David Miller >Cc: Tantilov, Emil S; Kirsher, Jeffrey T; >netdev@xxxxxxxxxxxxxxx; gospo@xxxxxxxxxx; >sassmann@xxxxxxxxxx; asharma@xxxxxx; stable@xxxxxxxxxxxxxxx >Subject: Re: [net-next 01/16] ixgbe: add check for >netif_carrier_ok in ixgbe_xmit_frame > >On Fri, 2014-03-14 at 17:51 -0400, David Miller wrote: >> From: "Tantilov, Emil S" <emil.s.tantilov@xxxxxxxxx> >> Date: Fri, 14 Mar 2014 20:19:38 +0000 >> >> > That would work, but what if there are other callers of >> > ndo_start_xmit that don't have this check? Handling this in the >> > driver takes care of all instances. >> >> netif_carrier_off() is supposed to stop traffic from flowing to >> the device. >> >> The qdisc layer should be honoring this property, and my >> suspicion is that it is just netpoll operates in the unique >> environment that doesn't. > >There is no check for netif_carrier_ok() in the qdisc transmit path. >Instead netif_carrier_off() eventually causes link_watch to call >dev_deactivate() which installs the noop qdisc. > >It does seem like transmitters that bypass the qdisc should >be checking netif_carrier_ok(), but drivers must also accept that the >effect of netif_carrier_off() is not immediate. > >Maybe ixgbe is not calling netif_stop_all_queues() at quite >the right time? You're probably right. I'm looking into it. Thanks, Emil > >Ben. > >-- >Ben Hutchings >When you say `I wrote a program that crashed Windows', >people just stare ... >and say `Hey, I got those with the system, *for free*'. - >Linus Torvalds ��.n��������+%������w��{.n�����������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f