<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in ifb.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>68297dbb - rtnetlink: Remove __rtnl_link_register()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#68297dbb</link>
        <description>rtnetlink: Remove __rtnl_link_register()link_ops is protected by link_ops_mutex and no longer needs RTNL,so we have no reason to have __rtnl_link_register() separately.Let&apos;s remove it and call rtnl_link_register() from ifb.ko anddummy.ko.Note that both modules&apos; init() work on init_net only, so we neednot export pernet_ops_rwsem and can use rtnl_net_lock() there.Signed-off-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Link: https://patch.msgid.link/20241108004823.29419-4-kuniyu@amazon.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Fri, 08 Nov 2024 00:48:16 +0000</pubDate>
        <dc:creator>Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;</dc:creator>
    </item>
<item>
        <title>d5ec8d91 - rtnetlink: Remove __rtnl_link_unregister().</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#d5ec8d91</link>
        <description>rtnetlink: Remove __rtnl_link_unregister().rtnl_link_unregister() holds RTNL and calls __rtnl_link_unregister(),where we call synchronize_srcu() to wait inflight RTM_NEWLINK requestsfor per-netns RTNL.We put synchronize_srcu() in __rtnl_link_unregister() due to ifb.koand dummy.ko.However, rtnl_newlink() will acquire SRCU before RTNL later in thisseries.  Then, lockdep will detect the deadlock:   rtnl_link_unregister()       rtnl_newlink()   ----                         ----   lock(rtnl_mutex);                                lock(&amp;ops-&gt;srcu);                                lock(rtnl_mutex);   sync(&amp;ops-&gt;srcu);To avoid the problem, we must call synchronize_srcu() before RTNL inrtnl_link_unregister().As a preparation, let&apos;s remove __rtnl_link_unregister().Signed-off-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Link: https://patch.msgid.link/20241108004823.29419-2-kuniyu@amazon.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Fri, 08 Nov 2024 00:48:14 +0000</pubDate>
        <dc:creator>Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;</dc:creator>
    </item>
<item>
        <title>55c90047 - net: fill in MODULE_DESCRIPTION()s under drivers/net/</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#55c90047</link>
        <description>net: fill in MODULE_DESCRIPTION()s under drivers/net/W=1 builds now warn if module is built without a MODULE_DESCRIPTION().Acked-by: Willem de Bruijn &lt;willemb@google.com&gt;Acked-by: Jamal Hadi Salim &lt;jhs@mojatatu.com&gt;Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;Acked-by: Jason Wang &lt;jasowang@redhat.com&gt;Acked-by: Taehee Yoo &lt;ap420073@gmail.com&gt;Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Fri, 27 Oct 2023 21:13:11 +0000</pubDate>
        <dc:creator>Jakub Kicinski &lt;kuba@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>068c38ad - net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers).</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#068c38ad</link>
        <description>net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers).Now that the 32bit UP oddity is gone and 32bit uses always a sequencecount, there is no need for the fetch_irq() variants anymore.Convert to the regular interface.Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;Acked-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Wed, 26 Oct 2022 13:22:14 +0000</pubDate>
        <dc:creator>Thomas Gleixner &lt;tglx@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>a21ee5b2 - net: ifb: support ethtools stats</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#a21ee5b2</link>
        <description>net: ifb: support ethtools statsWith this feature, we can use the ethtools to get tx/rxqueues stats. This patch, introduce the ifb_update_q_statshelper to update the queues stats, and ifb_q_stats to simplifythe codes.Signed-off-by: Tonghao Zhang &lt;xiangxia.m.yue@gmail.com&gt;Link: https://lore.kernel.org/r/20211128014631.43627-1-xiangxia.m.yue@gmail.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Sun, 28 Nov 2021 01:46:31 +0000</pubDate>
        <dc:creator>Tonghao Zhang &lt;xiangxia.m.yue@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>7444d706 - ifb: fix building without CONFIG_NET_CLS_ACT</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#7444d706</link>
        <description>ifb: fix building without CONFIG_NET_CLS_ACTThe driver no longer depends on this option, but it fails tobuild if it&apos;s disabled because the skb-&gt;tc_skip_classify ishidden behind an #ifdef:drivers/net/ifb.c:81:8: error: no member named &apos;tc_skip_classify&apos; in &apos;struct sk_buff&apos;                skb-&gt;tc_skip_classify = 1;Use the same #ifdef around the assignment.Fixes: 046178e726c2 (&quot;ifb: Depend on netfilter alternatively to tc&quot;)Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Fri, 29 Oct 2021 11:30:51 +0000</pubDate>
        <dc:creator>Arnd Bergmann &lt;arnd@arndb.de&gt;</dc:creator>
    </item>
<item>
        <title>42df6e1d - netfilter: Introduce egress hook</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#42df6e1d</link>
        <description>netfilter: Introduce egress hookSupport classifying packets with netfilter on egress to satisfy userrequirements such as:* outbound security policies for containers (Laura)* filtering and mangling intra-node Direct Server Return (DSR) traffic  on a load balancer (Laura)* filtering locally generated traffic coming in through AF_PACKET,  such as local ARP traffic generated for clustering purposes or DHCP  (Laura; the AF_PACKET plumbing is contained in a follow-up commit)* L2 filtering from ingress and egress for AVB (Audio Video Bridging)  and gPTP with nftables (Pablo)* in the future: in-kernel NAT64/NAT46 (Pablo)The egress hook introduced herein complements the ingress hook added bycommit e687ad60af09 (&quot;netfilter: add netfilter ingress hook afterhandle_ing() under unique static key&quot;).  A patch for nftables to hook upegress rules from user space has been submitted separately, so users mayimmediately take advantage of the feature.Alternatively or in addition to netfilter, packets can be classifiedwith traffic control (tc).  On ingress, packets are classified first bytc, then by netfilter.  On egress, the order is reversed for symmetry.Conceptually, tc and netfilter can be thought of as layers, withnetfilter layered above tc.Traffic control is capable of redirecting packets to another interface(man 8 tc-mirred).  E.g., an ingress packet may be redirected from thehost namespace to a container via a veth connection:tc ingress (host) -&gt; tc egress (veth host) -&gt; tc ingress (veth container)In this case, netfilter egress classifying is not performed when leavingthe host namespace!  That&apos;s because the packet is still on the tc layer.If tc redirects the packet to a physical interface in the host namespacesuch that it leaves the system, the packet is never subjected tonetfilter egress classifying.  That is only logical since it hasn&apos;tpassed through netfilter ingress classifying either.Packets can alternatively be redirected at the netfilter layer usingnft fwd.  Such a packet *is* subjected to netfilter egress classifyingsince it has reached the netfilter layer.Internally, the skb-&gt;nf_skip_egress flag controls whether netfilter isinvoked on egress by __dev_queue_xmit().  Because __dev_queue_xmit() maybe called recursively by tunnel drivers such as vxlan, the flag isreverted to false after sch_handle_egress().  This ensures thatnetfilter is applied both on the overlay and underlying network.Interaction between tc and netfilter is possible by setting and queryingskb-&gt;mark.If netfilter egress classifying is not enabled on any interface, it ispatched out of the data path by way of a static_key and doesn&apos;t make aperformance difference that is discernible from noise:Before:             1537 1538 1538 1537 1538 1537 Mb/secAfter:              1536 1534 1539 1539 1539 1540 Mb/secBefore + tc accept: 1418 1418 1418 1419 1419 1418 Mb/secAfter  + tc accept: 1419 1424 1418 1419 1422 1420 Mb/secBefore + tc drop:   1620 1619 1619 1619 1620 1620 Mb/secAfter  + tc drop:   1616 1624 1625 1624 1622 1619 Mb/secWhen netfilter egress classifying is enabled on at least one interface,a minimal performance penalty is incurred for every egress packet, evenif the interface it&apos;s transmitted over doesn&apos;t have any netfilter egressrules configured.  That is caused by checking dev-&gt;nf_hooks_egressagainst NULL.Measurements were performed on a Core i7-3615QM.  Commands to reproduce:ip link add dev foo type dummyip link set dev foo upmodprobe pktgenecho &quot;add_device foo&quot; &gt; /proc/net/pktgen/kpktgend_3samples/pktgen/pktgen_bench_xmit_mode_queue_xmit.sh -i foo -n 400000000 -m &quot;11:11:11:11:11:11&quot; -d 1.1.1.1Accept all traffic with tc:tc qdisc add dev foo clsacttc filter add dev foo egress bpf da bytecode &apos;1,6 0 0 0,&apos;Drop all traffic with tc:tc qdisc add dev foo clsacttc filter add dev foo egress bpf da bytecode &apos;1,6 0 0 2,&apos;Apply this patch when measuring packet drops to avoid errors in dmesg:https://lore.kernel.org/netdev/a73dda33-57f4-95d8-ea51-ed483abd6a7a@iogearbox.net/Signed-off-by: Lukas Wunner &lt;lukas@wunner.de&gt;Cc: Laura Garc&#237;a Li&#233;bana &lt;nevola@gmail.com&gt;Cc: John Fastabend &lt;john.fastabend@gmail.com&gt;Cc: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Cc: Alexei Starovoitov &lt;ast@kernel.org&gt;Cc: Eric Dumazet &lt;edumazet@google.com&gt;Cc: Thomas Graf &lt;tgraf@suug.ch&gt;Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Fri, 08 Oct 2021 20:06:03 +0000</pubDate>
        <dc:creator>Lukas Wunner &lt;lukas@wunner.de&gt;</dc:creator>
    </item>
<item>
        <title>cf9207d7 - ifb: remove leading spaces before tabs</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#cf9207d7</link>
        <description>ifb: remove leading spaces before tabsThere are a few leading spaces before tabs and remove it by runningthe following commard:    $ find . -name &apos;*.[ch]&apos; | xargs sed -r -i &apos;s/^[ ]+\t/\t/&apos;Signed-off-by: Hui Tang &lt;tanghui20@huawei.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Thu, 20 May 2021 03:47:53 +0000</pubDate>
        <dc:creator>Hui Tang &lt;tanghui20@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>08267523 - ifb: use new tasklet API</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#08267523</link>
        <description>ifb: use new tasklet APIThis converts the driver to use the new tasklet API introduced incommit 12cc923f1ccc (&quot;tasklet: Introduce new initialization API&quot;)Signed-off-by: Emil Renner Berthing &lt;kernel@esmil.dk&gt;Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Sat, 30 Jan 2021 23:47:24 +0000</pubDate>
        <dc:creator>Emil Renner Berthing &lt;kernel@esmil.dk&gt;</dc:creator>
    </item>
<item>
        <title>ecb8fed4 - net: bonding, dummy, ifb, team: advertise NETIF_F_GSO_SOFTWARE</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#ecb8fed4</link>
        <description>net: bonding, dummy, ifb, team: advertise NETIF_F_GSO_SOFTWAREVirtual netdevs should use NETIF_F_GSO_SOFTWARE to forward GSO skbsas-is and let the final drivers deal with them when supported.Also remove NETIF_F_GSO_UDP_L4 from bonding and team drivers as it&apos;snow included in the &quot;software&quot; list.Suggested-by: Willem de Bruijn &lt;willemb@google.com&gt;Signed-off-by: Alexander Lobakin &lt;alobakin@pm.me&gt;Acked-by: Willem de Bruijn &lt;willemb@google.com&gt;Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Sun, 01 Nov 2020 13:17:17 +0000</pubDate>
        <dc:creator>Alexander Lobakin &lt;alobakin@pm.me&gt;</dc:creator>
    </item>
<item>
        <title>2c64605b - net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#2c64605b</link>
        <description>net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} buildnet/netfilter/nft_fwd_netdev.c: In function &#8216;nft_fwd_netdev_eval&#8217;:    net/netfilter/nft_fwd_netdev.c:32:10: error: &#8216;struct sk_buff&#8217; has no member named &#8216;tc_redirected&#8217;      pkt-&gt;skb-&gt;tc_redirected = 1;              ^~    net/netfilter/nft_fwd_netdev.c:33:10: error: &#8216;struct sk_buff&#8217; has no member named &#8216;tc_from_ingress&#8217;      pkt-&gt;skb-&gt;tc_from_ingress = 1;              ^~To avoid a direct dependency with tc actions from netfilter, wrap theredirect bits around CONFIG_NET_REDIRECT and move helpers toinclude/linux/skbuff.h. Turn on this toggle from the ifb driver, theonly existing client of these bits in the tree.This patch adds skb_set_redirected() that sets on the redirected biton the skbuff, it specifies if the packet was redirect from ingressand resets the timestamp (timestamp reset was originally missing in thenetfilter bugfix).Fixes: bcfabee1afd99484 (&quot;netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress&quot;)Reported-by: noreply@ellerman.id.auReported-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Wed, 25 Mar 2020 12:47:18 +0000</pubDate>
        <dc:creator>Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;</dc:creator>
    </item>
<item>
        <title>2874c5fd - treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#2874c5fd</link>
        <description>treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152Based on 1 normalized pattern(s):  this program is free software you can redistribute it and or modify  it under the terms of the gnu general public license as published by  the free software foundation either version 2 of the license or at  your option any later versionextracted by the scancode license scanner the SPDX license identifier  GPL-2.0-or-laterhas been chosen to replace the boilerplate/reference in 3029 file(s).Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;Cc: linux-spdx@vger.kernel.orgLink: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.deSigned-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Mon, 27 May 2019 06:55:01 +0000</pubDate>
        <dc:creator>Thomas Gleixner &lt;tglx@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>b1d2e4e0 - ifb: fix packets checksum</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#b1d2e4e0</link>
        <description>ifb: fix packets checksumFixup the checksum for CHECKSUM_COMPLETE when pulling skbs on RX path.Otherwise we get splats when tc mirred is used to redirect packets to ifb.Before fix:nic: hw csum failureSigned-off-by: Jon Maxwell &lt;jmaxwell37@gmail.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Thu, 24 May 2018 21:38:29 +0000</pubDate>
        <dc:creator>Jon Maxwell &lt;jmaxwell37@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>554873e5 - net: Do not take net_rwsem in __rtnl_link_unregister()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#554873e5</link>
        <description>net: Do not take net_rwsem in __rtnl_link_unregister()This function calls call_netdevice_notifier(), which alsomay take net_rwsem. So, we can&apos;t use net_rwsem here.This patch makes callers of this functions take pernet_ops_rwsem,like register_netdevice_notifier() does. This will protectthe modifications of net_namespace_list, and allows notifiersto take it (they won&apos;t have to care about context).Since __rtnl_link_unregister() is used on module loadand unload (which are not frequent operations), this looksfor me better, than make all call_netdevice_notifier()always executing in &quot;protected net_namespace_list&quot; context.Also, this fixes the problem we had a deal in 328fbe747ad4&quot;Close race between {un, }register_netdevice_notifier and ...&quot;,and guarantees __rtnl_link_unregister() does not skipexitting net.Signed-off-by: Kirill Tkhai &lt;ktkhai@virtuozzo.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Fri, 30 Mar 2018 16:38:37 +0000</pubDate>
        <dc:creator>Kirill Tkhai &lt;ktkhai@virtuozzo.com&gt;</dc:creator>
    </item>
<item>
        <title>e94cd811 - net: remove MTU limits for dummy and ifb device</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#e94cd811</link>
        <description>net: remove MTU limits for dummy and ifb deviceThese two drivers (dummy and ifb) call ether_setup(), after commit61e84623ace3 (&quot;net: centralize net_device min/max MTU checking&quot;), therange of mtu is [min_mtu, max_mtu], which is [68, 1500] by default.These two devices should not have limits on MTU. This patch set theirmin_mtu/max_mtu to 0. So that dev_set_mtu() will not check the mtu range,and can be set with any value.CC: Eric Dumazet &lt;edumazet@google.com&gt;CC: Sabrina Dubroca &lt;sd@queasysnail.net&gt;Signed-off-by: Zhang Shengju &lt;zhangshengju@cmss.chinamobile.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Fri, 22 Sep 2017 15:57:49 +0000</pubDate>
        <dc:creator>Zhang Shengju &lt;zhangshengju@cmss.chinamobile.com&gt;</dc:creator>
    </item>
<item>
        <title>a8b8a889 - net: add netlink_ext_ack argument to rtnl_link_ops.validate</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#a8b8a889</link>
        <description>net: add netlink_ext_ack argument to rtnl_link_ops.validateAdd support for extended error reporting.Signed-off-by: Matthias Schiffer &lt;mschiffer@universe-factory.net&gt;Acked-by: David Ahern &lt;dsahern@gmail.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Sun, 25 Jun 2017 21:56:01 +0000</pubDate>
        <dc:creator>Matthias Schiffer &lt;mschiffer@universe-factory.net&gt;</dc:creator>
    </item>
<item>
        <title>cf124db5 - net: Fix inconsistent teardown and release of private netdev state.</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#cf124db5</link>
        <description>net: Fix inconsistent teardown and release of private netdev state.Network devices can allocate reasources and private memory usingnetdev_ops-&gt;ndo_init().  However, the release of these resourcescan occur in one of two different places.Either netdev_ops-&gt;ndo_uninit() or netdev-&gt;destructor().The decision of which operation frees the resources depends uponwhether it is necessary for all netdev refs to be released before itis safe to perform the freeing.netdev_ops-&gt;ndo_uninit() presumably can occur right after theNETDEV_UNREGISTER notifier completes and the unicast and multicastaddress lists are flushed.netdev-&gt;destructor(), on the other hand, does not run until thenetdev references all go away.Further complicating the situation is that netdev-&gt;destructor()almost universally does also a free_netdev().This creates a problem for the logic in register_netdevice().Because all callers of register_netdevice() manage the freeingof the netdev, and invoke free_netdev(dev) if register_netdevice()fails.If netdev_ops-&gt;ndo_init() succeeds, but something else fails insideof register_netdevice(), it does call ndo_ops-&gt;ndo_uninit().  Butit is not able to invoke netdev-&gt;destructor().This is because netdev-&gt;destructor() will do a free_netdev() andthen the caller of register_netdevice() will do the same.However, this means that the resources that would normally be releasedby netdev-&gt;destructor() will not be.Over the years drivers have added local hacks to deal with this, byinvoking their destructor parts by hand when register_netdevice()fails.Many drivers do not try to deal with this, and instead we have leaks.Let&apos;s close this hole by formalizing the distinction between whatprivate things need to be freed up by netdev-&gt;destructor() and whetherthe driver needs unregister_netdevice() to perform the free_netdev().netdev-&gt;priv_destructor() performs all actions to free up the privateresources that used to be freed by netdev-&gt;destructor(), except forfree_netdev().netdev-&gt;needs_free_netdev is a boolean that indicates whetherfree_netdev() should be done at the end of unregister_netdevice().Now, register_netdevice() can sanely release all resources afterndo_ops-&gt;ndo_init() succeeds, by invoking both ndo_ops-&gt;ndo_uninit()and netdev-&gt;priv_destructor().And at the end of unregister_netdevice(), we invokenetdev-&gt;priv_destructor() and optionally call free_netdev().Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Mon, 08 May 2017 16:52:56 +0000</pubDate>
        <dc:creator>David S. Miller &lt;davem@davemloft.net&gt;</dc:creator>
    </item>
<item>
        <title>bc31c905 - net-tc: convert tc_from to tc_from_ingress and tc_redirected</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#bc31c905</link>
        <description>net-tc: convert tc_from to tc_from_ingress and tc_redirectedThe tc_from field fulfills two roles. It encodes whether a packet wasredirected by an act_mirred device and, if so, whether act_mirred wascalled on ingress or egress. Split it into separate fields.The information is needed by the special IFB loop, where packets aretaken out of the normal path by act_mirred, forwarded to IFB, thenreinjected at their original location (ingress or egress) by IFB.The IFB device cannot use skb-&gt;tc_at_ingress, because that may havebeen overwritten as the packet travels from act_mirred to ifb_xmit,when it passes through tc_classify on the IFB egress path. Cache thisvalue in skb-&gt;tc_from_ingress.That field is valid only if a packet arriving at ifb_xmit came fromact_mirred. Other packets can be crafted to reach ifb_xmit. Thesemust be dropped. Set tc_redirected on redirection and drop all packetsthat do not have this bit set.Both fields are set only on cloned skbs in tc actions, so originalpacket sources do not have to clear the bit when reusing packets(notably, pktgen and octeon).Signed-off-by: Willem de Bruijn &lt;willemb@google.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Sat, 07 Jan 2017 22:06:38 +0000</pubDate>
        <dc:creator>Willem de Bruijn &lt;willemb@google.com&gt;</dc:creator>
    </item>
<item>
        <title>a5135bcf - net-tc: convert tc_verd to integer bitfields</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#a5135bcf</link>
        <description>net-tc: convert tc_verd to integer bitfieldsExtract the remaining two fields from tc_verd and remove the __u16completely. TC_AT and TC_FROM are converted to equivalent two-bitinteger fields tc_at and tc_from. Where possible, use existinghelper skb_at_tc_ingress when reading tc_at. Introduce helperskb_reset_tc to clear fields.Not documenting tc_from and tc_at, because they will be replacedwith single bit fields in follow-on patches.Signed-off-by: Willem de Bruijn &lt;willemb@google.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Sat, 07 Jan 2017 22:06:36 +0000</pubDate>
        <dc:creator>Willem de Bruijn &lt;willemb@google.com&gt;</dc:creator>
    </item>
<item>
        <title>e7246e12 - net-tc: extract skip classify bit from tc_verd</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/drivers/net/ifb.c#e7246e12</link>
        <description>net-tc: extract skip classify bit from tc_verdPackets sent by the IFB device skip subsequent tc classification.A single bit governs this state. Move it out of tc_verd inanticipation of removing that __u16 completely.The new bitfield tc_skip_classify temporarily uses one bit of ahole, until tc_verd is removed completely in a follow-up patch.Remove the bit hole comment. It could be 2, 3, 4 or 5 bits long.With that many options, little value in documenting it.Introduce a helper function to deduplicate the logic in the twosites that check this bit.The field tc_skip_classify is set only in IFB on skbs cloned inact_mirred, so original packet sources do not have to clear thebit when reusing packets (notably, pktgen and octeon).Signed-off-by: Willem de Bruijn &lt;willemb@google.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/drivers/net/ifb.c</description>
        <pubDate>Sat, 07 Jan 2017 22:06:35 +0000</pubDate>
        <dc:creator>Willem de Bruijn &lt;willemb@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
