lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 20 Apr 2010 16:48:09 -0700 (PDT) From: David Miller <davem@...emloft.net> To: mpatocka@...hat.com Cc: lists.linux-foundation.org@...hat.com, netdev@...r.kernel.org, kaber@...sh.net Subject: Re: crash with bridge and inconsistent handling of NETDEV_TX_OK From: David Miller <davem@...emloft.net> Date: Tue, 20 Apr 2010 16:45:05 -0700 (PDT) > From: Mikulas Patocka <mpatocka@...hat.com> > Date: Tue, 20 Apr 2010 19:40:56 -0400 (EDT) > >> Reviewing the code further, I found one very weird commit >> 572a9d7b6fc7f20f573664063324c086be310c42 committed to 2.6.33. What >> it does, it changes the semantics of ndo_hard_start_xmit(). Prior to >> the patch, the meaning was --- return zero (NETDEV_TX_OK) --- the >> skb is consumed by the driver. Returns non-zero --- the skb is left >> owned by the caller. The patch changes it to return other flags in >> bits 4-7 and changes the consumed/returned logic. >> >> The problem is that there is still plenty of code that compares it >> against NETDEV_TX_OK to find out if the skb was consumed. > > Drivers are not supposed to return those new flag bits, the new flag > bits as return values exist only in the packet scheduler path. And BTW, NETDEV_TX_OK is only ever returned by itself, the flag bits only get set when a non-NETDEV_TX_OK value is returned. So we really haven't changed semantics at all, NETDEV_TX_OK (which is zero) and non-zero are the two valid return value cases. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists