)]}'
{
  "log": [
    {
      "commit": "d954a67a7dfa58b7a9b3194322d321b940eb60c8",
      "tree": "3d7822d8e8c1b7f695cb5ca45e44216d2e4950e5",
      "parents": [
        "46762cefe7f4e5bffc1eb467810a7bbb02e461d7"
      ],
      "author": {
        "name": "Kuniyuki Iwashima",
        "email": "kuniyu@google.com",
        "time": "Tue Jun 16 19:13:48 2026 +0000"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 15:42:53 2026 -0700"
      },
      "message": "ipv4: fib_rule: Move fib4_rules_exit() to -\u003eexit().\n\nsyzbot reported use-after-free of net-\u003eipv4.rules_ops. [0]\n\nIt can be reproduced with these commands:\n\n  while true; do\n  \tip netns add ns1\n  \tip -n ns1 link set dev lo up\n  \tip -n ns1 address add 192.0.2.1/24 dev lo\n  \tip -n ns1 link add name dummy1 up type dummy\n  \tip -n ns1 address add 198.51.100.1/24 dev dummy1\n  \tip -n ns1 rule add ipproto tcp sport 12345 table 12345\n  \tip -n ns1 fou add port 5555 ipproto 47 local 192.0.2.1 peer 198.51.100.2 peer_port 54321\n  \tip netns del ns1\n  done\n\nThe cited commit moved fib4_rules_exit() earlier to -\u003eexit_rtnl(),\nbut the kernel socket destroyed in -\u003eexit() could eventually reach\n__fib_lookup().\n\nI left fib4_rules_exit() in -\u003eexit_rtnl() because fib4_rule_delete()\ncalls fib_unmerge(), which requires RTNL.\n\nHowever, when -\u003edelete() is called, -\u003econfigure() has already been\ncalled, thus fib_unmerge() in -\u003edelete() has no effect.\n\nLet\u0027s remove fib_unmerge() in fib4_rule_delete() and move\nfib4_rules_exit() to -\u003eexit().\n\nMany thanks to Ido Schimmel for providing the nice repro very quickly.\n\nNote that we can make fib_rules_ops.delete() return void once\nnet-next opens.\n\n[0]:\nBUG: KASAN: slab-use-after-free in fib_rules_lookup+0x15e/0xeb0 net/core/fib_rules.c:321\nRead of size 8 at addr ffff88804ec4c680 by task kworker/u8:21/12641\n\nCPU: 0 UID: 0 PID: 12641 Comm: kworker/u8:21 Not tainted syzkaller #0 PREEMPT(full)\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/09/2026\nWorkqueue: netns cleanup_net\nCall Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120\n print_address_description+0x55/0x1e0 mm/kasan/report.c:378\n print_report+0x58/0x70 mm/kasan/report.c:482\n kasan_report+0x117/0x150 mm/kasan/report.c:595\n fib_rules_lookup+0x15e/0xeb0 net/core/fib_rules.c:321\n __fib_lookup+0x106/0x210 net/ipv4/fib_rules.c:96\n ip_route_output_key_hash_rcu+0x294/0x2720 net/ipv4/route.c:2811\n ip_route_output_key_hash+0x18d/0x2a0 net/ipv4/route.c:2702\n __ip_route_output_key include/net/route.h:169 [inline]\n ip_route_output_flow+0x2a/0x150 net/ipv4/route.c:2929\n ip4_datagram_release_cb+0x89d/0xbe0 net/ipv4/datagram.c:118\n release_sock+0x206/0x260 net/core/sock.c:3861\n inet_shutdown+0x2b1/0x390 net/ipv4/af_inet.c:950\n udp_tunnel_sock_release+0x6d/0x80 net/ipv4/udp_tunnel_core.c:197\n fou_release net/ipv4/fou_core.c:562 [inline]\n fou_exit_net+0x17d/0x1f0 net/ipv4/fou_core.c:1230\n ops_exit_list net/core/net_namespace.c:199 [inline]\n ops_undo_list+0x43d/0x8d0 net/core/net_namespace.c:252\n cleanup_net+0x572/0x810 net/core/net_namespace.c:702\n process_one_work kernel/workqueue.c:3314 [inline]\n process_scheduled_works+0xa8e/0x14e0 kernel/workqueue.c:3397\n worker_thread+0xa47/0xfb0 kernel/workqueue.c:3478\n kthread+0x389/0x470 kernel/kthread.c:436\n ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158\n ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245\n \u003c/TASK\u003e\n\nFixes: 759923cf03b0 (\"ipv4: fib: Convert fib_net_exit_batch() to -\u003eexit_rtnl().\")\nReported-by: syzbot+965506b59a2de0b6905c@syzkaller.appspotmail.com\nCloses: https://lore.kernel.org/all/6a315824.b0403584.28d0ff.0000.GAE@google.com/\nSigned-off-by: Kuniyuki Iwashima \u003ckuniyu@google.com\u003e\nLink: https://patch.msgid.link/20260616191359.4142661-1-kuniyu@google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "46762cefe7f4e5bffc1eb467810a7bbb02e461d7",
      "tree": "9f100a2f1c099e07b47b343e087fc4ffd67ad4bf",
      "parents": [
        "d755d45bc08a57a3b845b850f8760de922a499bf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Jun 16 14:13:17 2026 +0000"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 15:42:53 2026 -0700"
      },
      "message": "net: serialize netif_running() check in enqueue_to_backlog()\n\nSyzbot reported a KASAN slab-use-after-free in fib_rules_lookup().\n\nThe root cause is a race condition where packets can escape the backlog\nflushing during device unregistration (e.g., during netns exit).\n\nCommit e9e4dd3267d0 (\"net: do not process device backlog during unregistration\")\nintroduced a lockless netif_running() check in enqueue_to_backlog() to\nprevent queuing packets to an unregistering device.\n\nHowever, this creates a TOCTOU race window.\n\nA lockless transmitter (like veth_xmit) can pass\nthe check before dev_close() clears IFF_UP. If the transmitter is then\ndelayed, flush_all_backlogs() can run and finish before the transmitter\ngrabs the backlog lock and queues the packet. The packet then escapes\nthe flush and triggers UAF later when processed.\n\nFix this by moving the netif_running() check inside the backlog lock.\nThis serializes the check with the flush work (which also grabs the lock).\nWe then either queue the packet before the flush runs (so it gets flushed),\nor check netif_running() after the flush/close completes (so it gets dropped).\n\nFixes: e9e4dd3267d0 (\"net: do not process device backlog during unregistration\")\nReported-by: syzbot+965506b59a2de0b6905c@syzkaller.appspotmail.com\nCloses: https://lore.kernel.org/netdev/6a315824.b0403584.28d0ff.0000.GAE@google.com/T/#u\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Julian Anastasov \u003cja@ssi.bg\u003e\nReviewed-by: Kuniyuki Iwashima \u003ckuniyu@google.com\u003e\nLink: https://patch.msgid.link/20260616141317.407791-1-edumazet@google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "d755d45bc08a57a3b845b850f8760de922a499bf",
      "tree": "b5da5b113706ef9318f74705d2cd2d265ca7741a",
      "parents": [
        "8940a8202c83b4bfbf71a859a11a4920b1aa3a77",
        "406e8a651a7b854c41fecd5117bb282b3a6c2c6b"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 14:57:37 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 14:59:58 2026 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net\n\nMerge in late fixes in preparation for the net-next PR.\n\nConflicts:\n\nnet/tls/tls_sw.c\n  406e8a651a7b (\"net: skmsg: preserve sg.copy across SG transforms\")\n  79511603a65b (\"tls: remove dead sockmap (psock) handling from the SW path\")\n\ndrivers/net/ethernet/microsoft/mana/mana_en.c\n  f8fd56977eeea (\"net: mana: guard TX wq object destroy with INVALID_MANA_HANDLE check\")\n  d07efe5a6e641 (\"net: mana: Use per-queue allocation for tx_qp to reduce allocation size\")\nhttps://lore.kernel.org/ajAPXu-C_PuTgV-a@sirena.org.uk\n\nNo adjacent changes.\n\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "406e8a651a7b854c41fecd5117bb282b3a6c2c6b",
      "tree": "b25425c04472319cfc09792524d3b6c18852801c",
      "parents": [
        "fbc6a80cb5d3fd4ac4b56e8c9d791dd17be890c4"
      ],
      "author": {
        "name": "Yiming Qian",
        "email": "yimingqian591@gmail.com",
        "time": "Wed Jun 10 06:21:36 2026 +0000"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 14:38:46 2026 -0700"
      },
      "message": "net: skmsg: preserve sg.copy across SG transforms\n\nThe sk_msg sg.copy bitmap is part of the scatterlist entry ownership\nstate. A set bit tells sk_msg_compute_data_pointers() not to expose the\nentry through writable BPF ctx-\u003edata. This protects entries backed by\npages that are not private to the sk_msg, such as splice-backed file\npage-cache pages.\n\nSeveral sk_msg transform paths move, copy, split, or compact\nmsg-\u003esg.data[] entries without moving the matching sg.copy bit. This can\nmake an externally backed entry arrive at a new slot with a clear copy\nbit. A later SK_MSG verdict can then expose sg_virt(sge) as writable\nctx-\u003edata and BPF stores can modify the original page cache.\n\nKeep sg.copy synchronized with sg.data[] whenever entries are\ntransferred, shifted, split, or copied into a new sk_msg. Clear the bit\nwhen an entry is replaced by a newly allocated private page or freed.\nThis covers the BPF pull/push/pop helpers, sk_msg_shift_left/right(),\nsk_msg_xfer(), and tls_split_open_record(), including the partial tail\nentry created during TLS open-record splitting.\n\nFixes: d3b18ad31f93 (\"tls: add bpf support to sk_msg handling\")\nCc: stable@vger.kernel.org\nReported-by: Yiming Qian \u003cyimingqian591@gmail.com\u003e\nReported-by: Keenan Dong \u003ckeenanat2000@gmail.com\u003e\nSigned-off-by: Yiming Qian \u003cyimingqian591@gmail.com\u003e\nLink: https://patch.msgid.link/20260610062137.49075-1-yimingqian591@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "8940a8202c83b4bfbf71a859a11a4920b1aa3a77",
      "tree": "d98e4376c227af8b39131c5fa85f7030f377d0b7",
      "parents": [
        "ffaf8967735e7271a4a1362840bcfbbf2a7a722b",
        "8a398a0c189ead8bbce98f5be70b8ea0e30b21f8"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 14:37:16 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 14:37:17 2026 -0700"
      },
      "message": "Merge branch \u0027appletalk-move-the-protocol-out-of-tree\u0027\n\nJakub Kicinski says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nappletalk: move the protocol out of tree\n\nThis tiny series moves appletalk out of tree, to:\n\n  https://github.com/linux-netdev/mod-orphan\n\nCore maintainainers are unable to keep up with the rate of security\nbug reports and fixes. Nobody seems to care about appletalk enough\nto review the patches.\n\nAs Eric pointed out Mac OS dropped AppleTalk over a decade ago.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260615222935.947233-1-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "8a398a0c189ead8bbce98f5be70b8ea0e30b21f8",
      "tree": "d98e4376c227af8b39131c5fa85f7030f377d0b7",
      "parents": [
        "023f9b0f2f4ffbf78ce9dfb8fbacb767c8e97162"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:29:35 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 14:37:06 2026 -0700"
      },
      "message": "appletalk: move the protocol out of tree\n\nAppleTalk has been removed in MacOS X 10.6 (Snow Leopard), in 2009,\naccording to Wikipedia. We recently got a burst of AI generated\nfixes to this protocol which nobody is reviewing.\n\nLet AppleTalk follow AX.25 and hamradio out of the Linux tree.\nWe we will maintain the code at: github.com/linux-netdev/mod-orphan\nfor anyone interested in playing with it.\n\nRetain the uAPI for now. No strong reason, simply because I suspect\nkeeping it will be less controversial.\n\nAcked-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nLink: https://patch.msgid.link/20260615222935.947233-3-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "023f9b0f2f4ffbf78ce9dfb8fbacb767c8e97162",
      "tree": "d4e35425926f86ef0afd8b411f8eb62852c27534",
      "parents": [
        "ffaf8967735e7271a4a1362840bcfbbf2a7a722b"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:29:34 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 14:37:06 2026 -0700"
      },
      "message": "appletalk: stop storing per-interface state in struct net_device\n\nAppleTalk keeps its per-interface control block (struct atalk_iface)\ndirectly in struct netdevice (dev-\u003eatalk_ptr). This is the only thing\ntying the protocol into the core net_device layout and is the sole\nblocker to moving AppleTalk out of tree.\n\nReplace dev-\u003eatalk_ptr with a small ifindex-keyed hashtable internal\nto ddp.c. The existing atalk_interfaces list stays the owner of the iface\nobjects; the hashtable is purely a fast dev-\u003eiface index and reuses\nthe same atalk_interfaces_lock.\n\nAFAICT this patch does not make this code any more racy than it already\nis, I\u0027m sure Sashiko will point out some basically existing bugs.\nAFAICT atalk_interfaces_lock is the innermost lock already.\n\nAcked-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nLink: https://patch.msgid.link/20260615222935.947233-2-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "ffaf8967735e7271a4a1362840bcfbbf2a7a722b",
      "tree": "592952659c27f5c1d22cc664a7c7599a3dc47bd4",
      "parents": [
        "e1f544466b2c6c67e70e42118a7fb39cee0b374a",
        "5949a7cf11e685dd171e33586c272dfe673310b6"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:55:47 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:55:48 2026 -0700"
      },
      "message": "Merge branch \u0027tls-reject-the-combination-of-tls-and-sockmap\u0027\n\nJakub Kicinski says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\ntls: reject the combination of TLS and sockmap\n\nThere are no known TLS+sockmap users and it has some known\nhard to solve bugs. Let\u0027s reject this configuration as we\ndiscussed a number of times.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260614014102.461064-1-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "5949a7cf11e685dd171e33586c272dfe673310b6",
      "tree": "592952659c27f5c1d22cc664a7c7599a3dc47bd4",
      "parents": [
        "6af8971d910ec80d7ed33e41a68b86c08142df08"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Sat Jun 13 18:41:00 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:55:41 2026 -0700"
      },
      "message": "selftests/bpf: test that TLS crypto is rejected on a sockmap socket\n\nTLS and sockmap are mutually exclusive. We already have a test\nfor the sockmap side rejecting kTLS, add the inverse test matching\npatch 1 of this series.\n\nLink: https://patch.msgid.link/20260614014102.461064-6-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "6af8971d910ec80d7ed33e41a68b86c08142df08",
      "tree": "6662dd778e5799b2cafcc6ec57811d3e43e5cb2e",
      "parents": [
        "faf89584e436d737ba4e64fe021e83d5665e7bd5"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Sat Jun 13 18:40:59 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:55:41 2026 -0700"
      },
      "message": "selftests/bpf: drop the unused kTLS program from test_sockmap\n\nWith the sockmap + kTLS tests gone, the BPF-side support in test_sockmap\nis dead: the tls_sock_map map and bpf_prog3 (which redirected skbs into\nit) are no longer referenced. Remove them, along with the now-unused\nbpf_write_pass() helper.\n\nbpf_prog3 was progs[2], so renumber the progs[] users in test_sockmap.c:\nthe sockops program drops to progs[2] and the sk_msg tx programs to\nprogs[3..7]. Shrink the map/prog arrays from 9 to 8 and drop the\ntls_sock_map entry (the last one) from map_names[] to match.\n\nLink: https://patch.msgid.link/20260614014102.461064-5-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "faf89584e436d737ba4e64fe021e83d5665e7bd5",
      "tree": "e29163a45134a6bc38751e37ab521b43a9027407",
      "parents": [
        "79511603a65b990bed675eb4bcfd85305d3ff42a"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Sat Jun 13 18:40:58 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:55:41 2026 -0700"
      },
      "message": "selftests/bpf: remove sockmap + ktls tests\n\nThe combination of sockmap and TLS is no longer supported - installing\nthe TLS ULP on a sockmap socket (and vice versa) is now rejected. Remove\nthe tests that exercise the combination along with their BPF program;\nthe file covered nothing but sockmap sockets holding kTLS contexts.\n\nReviewed-by: Jakub Sitnicki \u003cjakub@cloudflare.com\u003e\nLink: https://patch.msgid.link/20260614014102.461064-4-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "79511603a65b990bed675eb4bcfd85305d3ff42a",
      "tree": "c9398be2aebf785c7d73cc68c029032550d38a05",
      "parents": [
        "460e6486617c17dd19abe8f3fc67d9a6fa25f8ca"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Sat Jun 13 18:40:57 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:55:41 2026 -0700"
      },
      "message": "tls: remove dead sockmap (psock) handling from the SW path\n\nTLS and sockmap are now mutually exclusive. Try to delete the code\nfrom sendmsg and recvmsg path which is now obviously dead.\n\nThe main goal is to delete enough code for AI security scanners\nto no longer bother us with sockmap related bugs. At the same\ntime retain the code in case someone has the cycles to fix\nall of this and make the integration work, again.\n\nIf the integration does not get restored we can wipe the rest\nof the skmsg code from TLS in two or three releases.\n\nThe changes on the Tx side are deeper since that\u0027s where most\nof the bugs are, Rx side simply takes the data from sockmap\nand gives it to the user. On Tx split record handling and\nrolling back the iterator were the two problem areas.\n\nReviewed-by: Jakub Sitnicki \u003cjakub@cloudflare.com\u003e\nReviewed-by: Sabrina Dubroca \u003csd@queasysnail.net\u003e\nLink: https://patch.msgid.link/20260614014102.461064-3-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "460e6486617c17dd19abe8f3fc67d9a6fa25f8ca",
      "tree": "868b7482c65b0d36731a099c5d2e8d9f2e585ca1",
      "parents": [
        "e1f544466b2c6c67e70e42118a7fb39cee0b374a"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Sat Jun 13 18:40:56 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:55:40 2026 -0700"
      },
      "message": "tls: reject the combination of TLS and sockmap\n\nTLS and sockmap (BPF psock) integration hides a lot of latent bugs.\nBugs which may be more or less relevant for real users but they\nare definitely exploitable.\n\nWe could not find anyone actively using this integration so let\u0027s\nreject this config. Adding a TLS socket to a sockmap was already\nrejected by sk_psock_init() through the inet_csk_has_ulp() check.\nWe need to reject the attempts to configure the TLS keys (rather\nthan adding the ULP itself) because checking prior to the ULP\ninstallation is tricky without risking a race with sockmap getting\nadded in parallel (sockmap does not hold the socket lock).\n\nThis patch is a minimal rejection of the feature. Subsequent patch\nin the series will do a light dead code removal. Full cleanup would\nrequire a major rewrite of the Tx path, we don\u0027t need skmsg any more.\n\nReviewed-by: Jakub Sitnicki \u003cjakub@cloudflare.com\u003e\nReviewed-by: Sabrina Dubroca \u003csd@queasysnail.net\u003e\nLink: https://patch.msgid.link/20260614014102.461064-2-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "e1f544466b2c6c67e70e42118a7fb39cee0b374a",
      "tree": "ad6eeffe7dd6f48d9bfd6d3d15bf0d1a98d0b8e4",
      "parents": [
        "72dfa4700f78a6d79300cb8a1a600791795232de",
        "8f9616500c59bb85a06a9d1c52e59d1bf4a194c2"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:56 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:57 2026 -0700"
      },
      "message": "Merge branch \u0027atm-remove-more-dead-code\u0027\n\nJakub Kicinski says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\natm: remove more dead code\n\nCommit 6deb53595092 (\"net: remove unused ATM protocols and legacy\nATM device drivers\") removed a good chunk of old ATM drivers.\nOur goal going forward is to limit the ATM support to PPPoATM\nused in ADSL deployments.\n\nA recent burst of AI generated fixes for net/atm/signaling.c and\nnet/atm/svc.c made me look closer at the remaining code. PPPoATM runs\nover permanent virtual circuits (PF_ATMPVC) with a statically\nconfigured VPI/VCI. We can drop switched virtual circuits (SVCs)\nand user-space signaling (atmsigd) support. While digging around\nI noticed a few more obviously dead pieces of code.\n\nAnnoyingly, I have applied one \"fix\" to QoS config which will\nnow make net conflict with this series :/\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260615194416.752559-1-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "8f9616500c59bb85a06a9d1c52e59d1bf4a194c2",
      "tree": "ad6eeffe7dd6f48d9bfd6d3d15bf0d1a98d0b8e4",
      "parents": [
        "e44e224e2f44c9ad3ab422b513d5ee2f0f45e416"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:16 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:53 2026 -0700"
      },
      "message": "atm: remove orphaned uAPI for deleted drivers, protocols and SVCs\n\nATM removals have left a number of uAPI headers and ioctl\ndefinitions with no in-kernel implementation behind them:\n\n - device headers for adapters deleted with the legacy PCI/SBUS drivers:\n   atm_eni.h, atm_he.h, atm_idt77105.h, atm_nicstar.h, atm_zatm.h and\n   the atmtcp pair atm_tcp.h / \u003clinux/atm_tcp.h\u003e\n - protocol headers for the removed CLIP, LANE and MPOA stacks:\n   atmarp.h, atmclip.h, atmlec.h, atmmpc.h\n - atmsvc.h and the SVC / p2mp / local-address ioctls in atmdev.h\n   (ATM_{GET,RST,ADD,DEL}ADDR, ATM_{ADD,DEL,GET}LECSADDR,\n   ATM_{ADD,DROP}PARTY) left behind by the SVC and address-registry\n   removals\n\nNone of these are referenced by any remaining in-tree code.\nLet\u0027s try to delete all this. Chances are nobody cares about\nthese headers any more. I\u0027m keeping this separate from the\nkernel side code changes for ease of revert, in case I am\nproven wrong...\n\nLink: https://patch.msgid.link/20260615194416.752559-10-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "e44e224e2f44c9ad3ab422b513d5ee2f0f45e416",
      "tree": "94b55243991e4998baff1bf81e26a9a7943a295e",
      "parents": [
        "ae6e653514d156f0cc2327fe9e7db731ecb35a76"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:15 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:53 2026 -0700"
      },
      "message": "atm: remove unused ATM PHY operations\n\nThe PHY operations are vestiges of the SAR/framer split used by the\nremoved PCI/SBUS ATM adapters:\n\n - atmdev_ops::phy_put / ::phy_get (register accessors) are never called\n   by the core and solos-pci only listed them as NULL\n - struct atmphy_ops and atm_dev::phy have no users at all - nothing\n   assigns or dereferences them\n\nRemove all of them. atm_dev::phy_data is kept: solos-pci repurposes it\nto stash its per-port channel index.\n\nLink: https://patch.msgid.link/20260615194416.752559-9-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "ae6e653514d156f0cc2327fe9e7db731ecb35a76",
      "tree": "062aa0d7994229284a2619ce00d5a8fac7ddc259",
      "parents": [
        "6719d57ee047cba211e8684eef46d5486a3295bb"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:14 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:52 2026 -0700"
      },
      "message": "atm: remove the unused pre_send and send_bh device operations\n\natmdev_ops::pre_send (a TX pre-processing hook) and ::send_bh (a\nbottom-half capable send variant) have no implementation behind them:\nno remaining ATM driver sets either, so vcc_sendmsg() always skipped\npre_send and the raw AAL0/AAL5 paths always fell back to -\u003esend().\nThe drivers that used these hooks were removed with the legacy ATM\nadapters.\n\nDrop both operations and the dead branches that tested for them.\n\nLink: https://patch.msgid.link/20260615194416.752559-8-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "6719d57ee047cba211e8684eef46d5486a3295bb",
      "tree": "4c374ab8452fa2cb4fdc58c5fa0db612e96ef7b6",
      "parents": [
        "aa582dc25ace8951ad595c71fb93d21ed2ec4624"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:13 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:52 2026 -0700"
      },
      "message": "atm: remove the unused change_qos device operation\n\natmdev_ops::change_qos() was the hook for renegotiating the traffic\nparameters of an already-connected VCC, driven from SO_ATMQOS on a\nconnected socket (and previously from the SVC as_modify path, now gone).\nNone of the ATM drivers left in tree implement it - solos-pci only listed\nchange_qos \u003d NULL - so atm_change_qos() always returned -EOPNOTSUPP.\n\nDrop the operation and return -EOPNOTSUPP directly.\n\nLink: https://patch.msgid.link/20260615194416.752559-7-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "aa582dc25ace8951ad595c71fb93d21ed2ec4624",
      "tree": "e2479fa127bcf5341bf3aca132872b5037effb79",
      "parents": [
        "a5a12d76d2cb23b3f2150ed3a5d674b0eba6a8b7"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:12 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:52 2026 -0700"
      },
      "message": "atm: remove SVC socket support and the signaling daemon interface\n\nATM switched virtual circuits (SVCs) are set up and torn down by a\nuser-space signaling daemon (atmsigd) which the kernel talks to over\na dedicated \"sigd\" socket: the kernel marshals Q.2931-style requests\n(as_connect, as_listen, as_accept, as_close, ...) to the daemon and\napplies the results to PF_ATMSVC sockets. This is the machinery behind\nclassical SVC use and was the foundation for LANE / MPOA, all of which\nhave been removed.\n\nDSL deployments do not use any of this. PPPoATM and BR2684 run over\npermanent virtual circuits (PF_ATMPVC) with a statically configured\nVPI/VCI; no atmsigd, no Q.2931. Neither remaining ATM driver\n(solos-pci, the USB DSL modems) is reachable through the SVC path.\n\nRemove the SVC socket family and the signaling interface:\n\n - delete net/atm/svc.c, net/atm/signaling.c and signaling.h\n - drop atmsvc_init()/atmsvc_exit() and the PF_ATMSVC registration and\n   module alias\n - drop the ATMSIGD_CTRL ioctl (sigd_attach) and the /proc/net/atm/svc\n   file\n - fold the SVC branch out of atm_change_qos(); all sockets are PVCs now\n\nThe obsolete ATM_SETSC ioctl stub is left in place (it already just\nwarns and returns 0), as is the struct atm_vcc SVC bookkeeping shared\nwith the queueing layer.\n\nLink: https://patch.msgid.link/20260615194416.752559-6-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "a5a12d76d2cb23b3f2150ed3a5d674b0eba6a8b7",
      "tree": "b484a65d33e97bc1717540025d1344cabd7a9cb1",
      "parents": [
        "277fb497d1011d3a195610047e7ad9ce94a03410"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:11 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:52 2026 -0700"
      },
      "message": "atm: remove the local ATM (NSAP) address registry\n\nnet/atm/addr.c maintained the per-device lists of local NSAP addresses\n(dev-\u003elocal) and ILMI-learned LECS addresses (dev-\u003elecs). These exist\nsolely to serve SVC signaling: the lists are populated through the\nATM_{ADD,DEL,RST}ADDR / ATM_{ADD,DEL,GET}LECSADDR ioctls used by the\natmsigd / ILMI daemons, and consumed when registering addresses with the\nsignaling daemon. The LECS list belonged to LAN Emulation, which has\nbeen removed.\n\nWith no SVC users in a DSL-only configuration these lists are always\nempty, so drop the registry entirely:\n\n - remove the ADDR/LECSADDR/RSTADDR ioctls\n - drop the now-always-empty \"atmaddress\" sysfs attribute\n - remove the dev-\u003elocal / dev-\u003elecs lists, structs and enums\n - delete net/atm/addr.c and net/atm/addr.h\n\nThe device ESI (\"MAC\" address) and its ATM_{G,S}ETESI ioctls and\n\"address\" sysfs attribute are retained - the USB DSL modems populate\nthe ESI.\n\nLink: https://patch.msgid.link/20260615194416.752559-5-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "277fb497d1011d3a195610047e7ad9ce94a03410",
      "tree": "22f653c2140c15b3bfa89b6676e818cd5c4b724c",
      "parents": [
        "b20aa9eded107bc78b7e54e64ccf79fbaeda9ecd"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:10 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:52 2026 -0700"
      },
      "message": "atm: remove dead SONET PHY ioctls\n\nThe SONET_* ioctls are SONET/SDH PHY controls that atm_dev_ioctl() and\nthe compat path only ever forwarded to the driver\u0027s -\u003eioctl() handler.\nThe PHY drivers that implemented them (the S/UNI library and the framers\non the removed PCI/SBUS adapters) are gone, and neither surviving driver\nservices them: solos-pci has no -\u003eioctl, and usbatm handles only\nATM_QUERYLOOP. They now uniformly return an error regardless.\n\nDrop the SONET compat passthrough and the SONET cases in atm_dev_ioctl(),\nalong with the now-unused linux/sonet.h includes. The SONET_* uAPI\ndefinitions are untouched.\n\nLink: https://patch.msgid.link/20260615194416.752559-4-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "b20aa9eded107bc78b7e54e64ccf79fbaeda9ecd",
      "tree": "e057c21ad06ce8bdf32fe4063d91dca7f19add18",
      "parents": [
        "c1468145ce756e7bd8d814728af19f4261939876"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:09 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:52 2026 -0700"
      },
      "message": "atm: remove the unused send_oam / push_oam callbacks\n\nThe atmdev_ops::send_oam device operation and the atm_vcc::push_oam\ncallback were the kernel\u0027s interface for raw F4/F5 OAM cell exchange.\nNothing assigns them a non-NULL value and nothing ever invokes them:\nthe core only ever initialises push_oam to NULL (in vcc_create() and the\nAAL init helpers) and the Solos driver only lists send_oam \u003d NULL for\ndocumentation. The drivers that actually drove OAM through these hooks\nwere removed along with the legacy ATM adapters.\n\nDrop both callbacks and the NULL initialisers.\n\nLink: https://patch.msgid.link/20260615194416.752559-3-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "c1468145ce756e7bd8d814728af19f4261939876",
      "tree": "c38bb1de4ad126864b9b93b874f55551e0d15bfe",
      "parents": [
        "72dfa4700f78a6d79300cb8a1a600791795232de"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:44:08 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue Jun 16 08:53:51 2026 -0700"
      },
      "message": "atm: remove AAL3/4 transport support\n\nAAL3/4 is an obsolete connection-oriented ATM adaptation layer that has\nseen no real use since the SMDS-era hardware it was designed for (90s?).\nWe are only maintaining ATM support in-tree to keep PPPoATM running,\nand PPPoATM runs over AAL5.\n\nDrop the \"raw\" AAL3/4 transport (atm_init_aal34()) and the ATM_AAL34\ncases in the connect and traffic-parameter paths. A vcc_connect() with\nqos.aal \u003d\u003d ATM_AAL34 now fails with -EPROTOTYPE.\n\nuAPI cleanup is performed later, separately.\n\nLink: https://patch.msgid.link/20260615194416.752559-2-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "72dfa4700f78a6d79300cb8a1a600791795232de",
      "tree": "ff2eb5f933d2e59b838a8dda47b56e71fdfb326d",
      "parents": [
        "2c53418347224f0c4e65842dafa4577695a93508"
      ],
      "author": {
        "name": "David Yang",
        "email": "mmyangfl@gmail.com",
        "time": "Sun Jun 14 22:13:16 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 19:01:48 2026 -0700"
      },
      "message": "net: dsa: sja1105: fix lastused timestamp in flower stats\n\nflow_stats_update() takes an absolute timestamp for lastused, not delta.\nFix that.\n\nSigned-off-by: David Yang \u003cmmyangfl@gmail.com\u003e\nLink: https://patch.msgid.link/20260614141320.1133321-1-mmyangfl@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "2c53418347224f0c4e65842dafa4577695a93508",
      "tree": "476bf37633f0e6aeba35084bd3910fa13af24231",
      "parents": [
        "987257c49bfb59ccf94bb30f41edc92ea0d6f739",
        "74ac711839a1640cd6eb64b1a4884b1dca90b20d"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:58:03 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:58:03 2026 -0700"
      },
      "message": "Merge branch \u0027extend-netkit-io_uring-zc-selftests\u0027\n\nDaniel Borkmann says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nExtend netkit io_uring ZC selftests\n\nSmall follow-up to the HW net selftests, in particular to add a\nselftest showing that also large rx_buf_len for io_uring ZC is\nsupported with netkit queue leasing.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260614102607.863838-1-daniel@iogearbox.net\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "74ac711839a1640cd6eb64b1a4884b1dca90b20d",
      "tree": "476bf37633f0e6aeba35084bd3910fa13af24231",
      "parents": [
        "5024cfc8a37bdc4ddf5d90b86cdc6acb85849cee"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Sun Jun 14 12:26:07 2026 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:58:01 2026 -0700"
      },
      "message": "selftests/net: Add hugepage kernel config dependency for zcrx\n\ntest_iou_zcrx_large_buf in drivers/net/hw/nk_qlease.py runs iou-zcrx\nwith rx_buf_len \u003e page size, backed by a hugepage-mapped area. Thus\nadd to the Kconfig.\n\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nReviewed-by: Bobby Eshleman \u003cbobbyeshleman@meta.com\u003e\nLink: https://patch.msgid.link/20260614102607.863838-5-daniel@iogearbox.net\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "5024cfc8a37bdc4ddf5d90b86cdc6acb85849cee",
      "tree": "9e1178d4f8cf355d3853ab7b04d3fdd091873f07",
      "parents": [
        "96fda937b4c170ae6164419f33434830423ce0e2"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Sun Jun 14 12:26:06 2026 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:58:01 2026 -0700"
      },
      "message": "selftests/net: Add netkit io_uring ZC test for large rx_buf_len\n\nAdd test_iou_zcrx_large_buf, which runs iou-zcrx with rx_buf_len \u003e\npage size (-x 2) through a netkit-leased RX queue. The netkit ifindex\nis opaque to io_uring, but rx_page_size is honoured by the leased\nphysical qops via netif_mp_open_rxq()\u0027s lease redirect.\n\nOriginally, I also added a BIG TCP variant on top, but dropped it\nhere as fbnic (and the QEMU fbnic model) has no BIG TCP support\nto exercise it as this point.\n\nTested against the QEMU fbnic emulation. The new test exercises\nthe \u003e page rx_buf_len path only when the leased NIC advertises\nQCFG_RX_PAGE_SIZE; otherwise it skips.\n\nFor fbnic, I used Bjorn\u0027s patches locally [0]:\n\n  # ./nk_qlease.py\n  TAP version 13\n  1..5\n  ok 1 nk_qlease.test_iou_zcrx\n  ok 2 nk_qlease.test_iou_zcrx_large_buf\n  ok 3 nk_qlease.test_attrs\n  ok 4 nk_qlease.test_attach_xdp_with_mp\n  ok 5 nk_qlease.test_destroy\n  # Totals: pass:5 fail:0 xfail:0 xpass:0 skip:0 error:0\n\nWithout those patches (aka not advertising QCFG_RX_PAGE_SIZE):\n\n  # ./nk_qlease.py\n  TAP version 13\n  1..5\n  ok 1 nk_qlease.test_iou_zcrx\n  ok 2 nk_qlease.test_iou_zcrx_large_buf # SKIP Large chunks are not supported -95\n  ok 3 nk_qlease.test_attrs\n  ok 4 nk_qlease.test_attach_xdp_with_mp\n  ok 5 nk_qlease.test_destroy\n  # Totals: pass:4 fail:0 xfail:0 xpass:0 skip:1 error:0\n\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nReviewed-by: Bobby Eshleman \u003cbobbyeshleman@meta.com\u003e\nLink: https://lore.kernel.org/netdev/20260522113225.241337-1-bjorn@kernel.org/ [0]\nLink: https://patch.msgid.link/20260614102607.863838-4-daniel@iogearbox.net\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "96fda937b4c170ae6164419f33434830423ce0e2",
      "tree": "f59577c76b716d6a7eebebea8b654d3cdea90d0c",
      "parents": [
        "bc5c25c8f684982d0363380e3490f626c68e0427"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Sun Jun 14 12:26:05 2026 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:58:01 2026 -0700"
      },
      "message": "selftests/net: Use public NetDrvContEnv API in nk_qlease fixtures\n\nExpose the netkit host ifname as a public attribute nk_host_ifname\n(symmetric with the already-public nk_guest_ifname), rename _attach_bpf\nto a public attach_bpf, and add a public detach_bpf helper that\nencapsulates the tc-filter teardown bookkeeping. Switch the fixtures\nto this public API. No functional change and keeps pylint happy.\n\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nReviewed-by: Bobby Eshleman \u003cbobbyeshleman@meta.com\u003e\nLink: https://patch.msgid.link/20260614102607.863838-3-daniel@iogearbox.net\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "bc5c25c8f684982d0363380e3490f626c68e0427",
      "tree": "360480df3a2dc393d381b1cf43e95fdfb9edf288",
      "parents": [
        "987257c49bfb59ccf94bb30f41edc92ea0d6f739"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Sun Jun 14 12:26:04 2026 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:58:00 2026 -0700"
      },
      "message": "selftests/net: Move netkit lease hw setup into per-test fixtures\n\nThe HW counterpart of nk_qlease.py was carrying its lease setup in main()\nand stashing src_queue / nk_queue / nk_*_ifname on cfg, which had drawbacks\ncalled out during the review at [0].\n\nThis is the deferred half of the cleanup that landed in commit e254ffb9502c\n(\"selftests/net: Split netdevsim tests from HW tests in nk_qlease\") which\nwas the SW counterpart of nk_qlease.py.\n\nWhile at it, convert the open-coded \"ip netns exec\" prefixes in the test\nbodies over to the ns\u003d argument of cmd() / bkg().\n\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nReviewed-by: Bobby Eshleman \u003cbobbyeshleman@meta.com\u003e\nLink: https://lore.kernel.org/netdev/20260408162238.16709090@kernel.org/ [0]\nLink: https://patch.msgid.link/20260614102607.863838-2-daniel@iogearbox.net\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "987257c49bfb59ccf94bb30f41edc92ea0d6f739",
      "tree": "309d4805775f46c3767037ff07118c5aad8c5900",
      "parents": [
        "195900546305644b5570dcd615e30be3abe86185",
        "3277e605ac01fd11d0a7c6c68c617547ba66c87f"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:15:12 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:15:12 2026 -0700"
      },
      "message": "Merge branch \u0027ionic-expose-more-port-stats-to-ethtool\u0027\n\nEric Joyner says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nionic: Expose more port stats to ethtool [part]\n\nThe primary aim of this patchset is to support the reporting of new port\nstatistics (and one old one) that firmware sends to the driver. A scheme\nfor these extra stats is introduced in order to prevent devices that\ndon\u0027t support these new statistics from unconditionally setting them or\nreporting them in ethtool.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260614205303.48088-1-eric.joyner@amd.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "3277e605ac01fd11d0a7c6c68c617547ba66c87f",
      "tree": "309d4805775f46c3767037ff07118c5aad8c5900",
      "parents": [
        "cb683ff6ee07ab92701cc45ae21373c2b0c8d481"
      ],
      "author": {
        "name": "Eric Joyner",
        "email": "eric.joyner@amd.com",
        "time": "Sun Jun 14 13:53:02 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:15:08 2026 -0700"
      },
      "message": "ionic: Get \"link_down_count\" ext link stat from firmware\n\nThe number of times that link has gone down at the port level is tracked\nby the firmware and sent to the driver via regular DMA writes to an\ninstance of struct ionic_port_status in the driver\u0027s memory.\n\nThis statistic was never reported in favor of a driver-derived stat, but\ndoing it in the driver was never necessary since firmware had been\nreporting it the whole time. Since it would be more accurate and true to\nthe description of the statistic to get this count at the PHY level,\nreplace the driver-calculated statistic with one derived from the\nfirmware one and remove the driver-calculated one entirely.\n\nThe stat reported by the ethtool .get_link_ext_stats() handler is\nnormalized to 0 on driver load and any device resets that require the\ndriver to rebuild state while also handling overflows.\n\nSigned-off-by: Eric Joyner \u003ceric.joyner@amd.com\u003e\nLink: https://patch.msgid.link/20260614205303.48088-5-eric.joyner@amd.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "cb683ff6ee07ab92701cc45ae21373c2b0c8d481",
      "tree": "bbccb5ebebbd5acbed6539e7d3b2dfef2396482a",
      "parents": [
        "433bc500814916133db94e55f096ccc01e5faa30"
      ],
      "author": {
        "name": "Eric Joyner",
        "email": "eric.joyner@amd.com",
        "time": "Sun Jun 14 13:53:01 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:15:08 2026 -0700"
      },
      "message": "ionic: Report \"rx_bits_phy\" stat to ethtool\n\nThis stat contains the number of total bits that the PHY has received;\nit\u0027s useful for BER calculations. Add it to the ethtool stats output.\n\nHowever, since this is one of the new \"extra port stats\", it\u0027s reported\nin a different manner than the existing port stats and only\nconditionally added to the ethtool stats output list: both the\nDEV_CAP_EXTRA_STATS capability must be supported by the firmware, and\nthe firmware must set the value of the statistic to something other than\nIONIC_STAT_INVALID.\n\nTo help support this scheme, the extra port stats region is initialized to\n0xff\u0027s/IONIC_STAT_INVALID by the driver, to ensure the statistics that\nthe driver knows about but the firmware does not are still invalid\nto the driver.\n\nSigned-off-by: Eric Joyner \u003ceric.joyner@amd.com\u003e\nLink: https://patch.msgid.link/20260614205303.48088-4-eric.joyner@amd.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "433bc500814916133db94e55f096ccc01e5faa30",
      "tree": "9494b16865c35965514d79d6e68484f8c90ad824",
      "parents": [
        "7678e69079c10b2fb10977f28f44ddb22971ea5b"
      ],
      "author": {
        "name": "Eric Joyner",
        "email": "eric.joyner@amd.com",
        "time": "Sun Jun 14 13:53:00 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:15:08 2026 -0700"
      },
      "message": "ionic: Update ionic_if.h with new extra port stats\n\nAdd a new structure to report additional statistics from the firmware to\nstruct ionic_port_info. This new struct currently only contains FEC\nrelated statistics, but any new port-level statistics collected by the\nfirmware would go into it.\n\nThe new structure is located in the same area as the unused\nionic_port_pb_stats structure, so this patch also removes that and its\nsupporting enumerations since they was never used in this driver.\n\nFinally, to indicate firmware support for the new structure, introduce a\nnew device capability that the driver can use to see if the attached\ndevice supports reporting these extra stats.\n\nSigned-off-by: Eric Joyner \u003ceric.joyner@amd.com\u003e\nLink: https://patch.msgid.link/20260614205303.48088-3-eric.joyner@amd.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "7678e69079c10b2fb10977f28f44ddb22971ea5b",
      "tree": "c332ee9a7efee836364d2336c34595c604a9e8f6",
      "parents": [
        "195900546305644b5570dcd615e30be3abe86185"
      ],
      "author": {
        "name": "Brett Creeley",
        "email": "brett.creeley@amd.com",
        "time": "Sun Jun 14 13:52:59 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 18:15:08 2026 -0700"
      },
      "message": "ionic: Fix check in ionic_get_link_ext_stats\n\nThe current check will fail if SR-IOV is not initialized for the\nphysical function; this is because is_physfn is 0 if sriov_init() isn\u0027t\nrun or fails. Change the check that prevents getting the link down count\nto use is_virtfn instead so that VFs don\u0027t get this functionality, which\nwas the original intent.\n\nFixes: 132b4ebfa090 (\"ionic: add support for ethtool extended stat link_down_count\")\nSigned-off-by: Brett Creeley \u003cbrett.creeley@amd.com\u003e\nSigned-off-by: Eric Joyner \u003ceric.joyner@amd.com\u003e\nLink: https://patch.msgid.link/20260614205303.48088-2-eric.joyner@amd.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "195900546305644b5570dcd615e30be3abe86185",
      "tree": "a4fe0491e77dc0234277bf905e064a62e5f359fb",
      "parents": [
        "a459b560e58be327689e9bd8c0a6be9a4f163366",
        "13ea4d4888c4614e496faa84d19a37f272116cc0"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 17:18:02 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 17:18:03 2026 -0700"
      },
      "message": "Merge branch \u0027net-dsa-mxl862xx-serdes-ports\u0027\n\nDaniel Golle says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnet: dsa: mxl862xx: SerDes ports\n\nAdd support for the two SerDes PCS interfaces of the MxL862xx switch\nICs, which can both either be used to connect PHYs or SFP cages, or as\nCPU port(s). 1000Base-X, 2500Base-X, 10GBase-R, 10GBase-KR, SGMII,\nQSGMII and USXGMII (single 10G or quad 2.5G) are supported.\n\nThe firmware only added the API to directly control the PCS as of\nversion 1.0.84, so the PCS features are gated behind a version check.\n\nAs the driver is growing do some refactoring to break out the phylink\nparts into mxl862xx-phylink.h.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/cover.1781319534.git.daniel@makrotopia.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "13ea4d4888c4614e496faa84d19a37f272116cc0",
      "tree": "a4fe0491e77dc0234277bf905e064a62e5f359fb",
      "parents": [
        "7dab839724ed4b02f89b90fa88e7bc820f299948"
      ],
      "author": {
        "name": "Daniel Golle",
        "email": "daniel@makrotopia.org",
        "time": "Sat Jun 13 04:07:29 2026 +0100"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 17:18:01 2026 -0700"
      },
      "message": "net: dsa: mxl862xx: add support for SerDes ports\n\nThe MxL862xx has two XPCS/SerDes interfaces (XPCS0 for ports 9-12,\nXPCS1 for ports 13-16). Each can operate in various single-lane modes\n(SGMII, 1000Base-X, 2500Base-X, 10GBase-R, 10GBase-KR, USXGMII) or as\nQSGMII or 10G_QXGMII providing four sub-ports per interface.\n\nImplement phylink PCS operations using the firmware\u0027s XPCS API:\n\n  - pcs_enable/pcs_disable: refcount the sub-ports sharing an XPCS\n    and power it down once the last sub-port is released.\n  - pcs_config: configure negotiation mode and CL37/SGMII advertising.\n  - pcs_get_state: read link state and the link-partner ability word\n    from firmware and decode using phylink\u0027s standard CL37, SGMII, and\n    USXGMII decoders.\n  - pcs_an_restart: restart CL37 or CL73 auto-negotiation.\n  - pcs_link_up: force speed/duplex for SGMII.\n  - pcs_inband_caps: report per-mode in-band status capabilities.\n\nRegister a PCS instance for each SerDes interface and\nQSGMII/10G_QXGMII sub-ports during setup. Advertise the supported\ninterface modes in phylink_get_caps based on port number.\n\nFirmware older than 1.0.84 lacks the XPCS API and instead configures\nthe SerDes itself, using defaults stored in flash. mac_select_pcs()\nreturns NULL in that case while the single-lane interface modes stay\nadvertised, so a CPU port keeps working in the firmware-configured\nmode.\n\nLacking support for expressing PHY-side role modes in Linux only the\nMAC-side of SGMII, QSGMII, USXGMII and 10G_QXGMII are implemented for\nnow.\n\nSigned-off-by: Daniel Golle \u003cdaniel@makrotopia.org\u003e\nLink: https://patch.msgid.link/736e4df02e4cb8c530c1670cbe7efac20b5d696d.1781319534.git.daniel@makrotopia.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "7dab839724ed4b02f89b90fa88e7bc820f299948",
      "tree": "32041fe8629bf3daa7efc32ea765b42b369cda00",
      "parents": [
        "c1034332003fc3f9dc99f0c45f7c0e31c695adb8"
      ],
      "author": {
        "name": "Daniel Golle",
        "email": "daniel@makrotopia.org",
        "time": "Sat Jun 13 04:07:23 2026 +0100"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 17:18:01 2026 -0700"
      },
      "message": "net: dsa: mxl862xx: move API macros to mxl862xx-host.h\n\nMove the MXL862XX_API_WRITE, MXL862XX_API_READ and\nMXL862XX_API_READ_QUIET convenience macros from mxl862xx.c to\nmxl862xx-host.h next to the mxl862xx_api_wrap() prototype they wrap.\nThis makes them available to other compilation units that include\nmxl862xx-host.h, which is needed once the SerDes PCS code in\nmxl862xx-phylink.c also calls firmware commands.\n\nNo functional change.\n\nSigned-off-by: Daniel Golle \u003cdaniel@makrotopia.org\u003e\nReviewed-by: Maxime Chevallier \u003cmaxime.chevallier@bootlin.com\u003e\nLink: https://patch.msgid.link/914f57931e79cc3932a9f32813465c08d29cf4bf.1781319534.git.daniel@makrotopia.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "c1034332003fc3f9dc99f0c45f7c0e31c695adb8",
      "tree": "0c2003031e320a85a3d3a4846031be4356561d79",
      "parents": [
        "937137db7914ed332ce455cdac94a218e6ae2693"
      ],
      "author": {
        "name": "Daniel Golle",
        "email": "daniel@makrotopia.org",
        "time": "Sat Jun 13 04:07:16 2026 +0100"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 17:18:00 2026 -0700"
      },
      "message": "net: dsa: mxl862xx: move phylink stubs to mxl862xx-phylink.c\n\nMove the phylink MAC operations and get_caps callback from mxl862xx.c\ninto a dedicated mxl862xx-phylink.c file. This prepares for the SerDes\nPCS implementation which adds substantial phylink/PCS code -- keeping\nit in a separate file avoids function-position churn in the main\ndriver file.\n\nNo functional change.\n\nSigned-off-by: Daniel Golle \u003cdaniel@makrotopia.org\u003e\nReviewed-by: Maxime Chevallier \u003cmaxime.chevallier@bootlin.com\u003e\nLink: https://patch.msgid.link/fb9336de94bef47a0834287cbca87954e5e4c795.1781319534.git.daniel@makrotopia.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "937137db7914ed332ce455cdac94a218e6ae2693",
      "tree": "e1d07207026484c8358ce417e2ae9bd320736196",
      "parents": [
        "a459b560e58be327689e9bd8c0a6be9a4f163366"
      ],
      "author": {
        "name": "Daniel Golle",
        "email": "daniel@makrotopia.org",
        "time": "Sat Jun 13 04:07:11 2026 +0100"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 17:18:00 2026 -0700"
      },
      "message": "net: dsa: mxl862xx: store firmware version for feature gating\n\nQuery the firmware version at init (already done in wait_ready),\ncache it in priv-\u003efw_version, and provide MXL862XX_FW_VER_MIN()\nfor version-gated code paths throughout the driver.\n\nMXL862XX_FW_VER() packs major/minor/revision into a u32 with\nbitwise shifts so that versions compare with natural ordering,\nindependent of host endianness.\n\nSigned-off-by: Daniel Golle \u003cdaniel@makrotopia.org\u003e\nReviewed-by: Andrew Lunn \u003candrew@lunn.ch\u003e\nLink: https://patch.msgid.link/91a26a8ffeaa2ce1729f98347e93e779973976bb.1781319534.git.daniel@makrotopia.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "a459b560e58be327689e9bd8c0a6be9a4f163366",
      "tree": "5bf38b1945e094b13ac96b8dbf0ab2e67b1d5a45",
      "parents": [
        "7f80f60161497c1b5a1e15392b11e5f4e3a323e3"
      ],
      "author": {
        "name": "Lorenzo Bianconi",
        "email": "lorenzo@kernel.org",
        "time": "Thu Jun 11 23:55:51 2026 +0200"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:35:41 2026 -0700"
      },
      "message": "net: airoha: use int instead of atomic_t for qdma users counter\n\nQDMA users counter is always accessed holding RTNL lock so we do not\nrequire atomic_t for it.\n\nSigned-off-by: Lorenzo Bianconi \u003clorenzo@kernel.org\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "fbc6a80cb5d3fd4ac4b56e8c9d791dd17be890c4",
      "tree": "85dc33c4be61a43524c99a6c4177b197e9821c27",
      "parents": [
        "c02fca0bef5d1081173219f276df643abdb825ab",
        "31e56112e6544afba0a50d60251175585ee62943"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:32:14 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:32:14 2026 -0700"
      },
      "message": "Merge branch \u0027mac-phy-interrupt-changed-to-level-triggered-interrupt\u0027\n\nSelvamani Rajagopal says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nMAC-PHY interrupt changed to level triggered interrupt\n\nAccording to OPEN Alliance 10BASE-T1x MAC-PHY Serial Interface\nspecification, MAC-PHY interrupt is \"active low, level triggered\".\nThe specification mentions about the conditions in which the IRQ\nis asserted and deasserted.\n\nBug is inadvertently introduced by treating the IRQ in the OA TC6\nframework driver and in dt-binding YAML file as edge triggered.\n\nWith the changes to use level triggered interrupt, use of threaded\nirq is more efficient than the current method that has interrupt hander\nworking with work queue.\n\nThis change of interrupt handler mechanism exposed couple of race\nconditions due to the fact that interrupts were not masked on protocol\nerror. And pointers were not initialized with null after skbs are freed.\n\nChanges are done in two files\n - OA TC6 framework Ethernet driver\n - YAML file for the vendor that already uses OA TC6 framework.\n\nMaintainer for this driver is already informed and aware of these\nchanges. Testing for these changes was done in onsemi\u0027s setup and\nfound to be working.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260611-level-trigger-v5-0-4533a9e85ce2@onsemi.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "31e56112e6544afba0a50d60251175585ee62943",
      "tree": "85dc33c4be61a43524c99a6c4177b197e9821c27",
      "parents": [
        "a5a1d11dd3729146abe7420b874bab15870a42b4"
      ],
      "author": {
        "name": "Selvamani Rajagopal",
        "email": "Selvamani.Rajagopal@onsemi.com",
        "time": "Thu Jun 11 14:55:41 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:32:10 2026 -0700"
      },
      "message": "dt-bindings: net: updated interrupt type to be active low, level triggered\n\nAccording to OPEN Alliance 10BASE-T1x MACPHY Serial Interface (TC6)\nspecification, interrupt type is active low, level triggered interrupt.\n\nSpecification calls for when interrupt level will be asserted and what\ncondition it is de-asserted. By using edge triggered interrupt, there is a\npotential chance to miss it, particularly if it is asserted when interrupt\nis disabled.\n\nLevel triggered interrupt can\u0027t be missed as it gets de-asserted only on\ninterrupt handler taking actions on interrupting conditions.\n\nFixes: ac49b950bea9 (\"dt-bindings: net: add Microchip\u0027s LAN865X 10BASE-T1S MACPHY\")\nSigned-off-by: Selvamani Rajagopal \u003cSelvamani.Rajagopal@onsemi.com\u003e\nAcked-by: Krzysztof Kozlowski \u003ckrzysztof.kozlowski@oss.qualcomm.com\u003e\nLink: https://patch.msgid.link/20260611-level-trigger-v5-4-4533a9e85ce2@onsemi.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "a5a1d11dd3729146abe7420b874bab15870a42b4",
      "tree": "74ae694e53b8b6cac7b8b80bbaf7a058ea987ee2",
      "parents": [
        "a221d3f7e3f3ea6a3b4bc511cf2a59242daa06e1"
      ],
      "author": {
        "name": "Selvamani Rajagopal",
        "email": "Selvamani.Rajagopal@onsemi.com",
        "time": "Thu Jun 11 14:55:40 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:32:10 2026 -0700"
      },
      "message": "net: ethernet: oa_tc6: Remove FCS size in RX frame\n\nOA TC6 MAC-PHY appends FCS to the incoming frame. It must be\nremoved from the frame before being passed to the stack.\n\nWith FCS in the frame, many applications, like ping or any\napplication that uses IP layer may work as they may\ncarry the packet size information in the protocol.\n\nApplication like ptp4l, particularly if it uses layer 2\nfor its communication, it will fail with \"bad message\" due to\nthe extra 4 bytes added by the presence of FCS.\n\nFixes: d70a0d8f2f2d (\"net: ethernet: oa_tc6: implement receive path to receive rx ethernet frames\")\nSigned-off-by: Selvamani Rajagopal \u003cSelvamani.Rajagopal@onsemi.com\u003e\nLink: https://patch.msgid.link/20260611-level-trigger-v5-3-4533a9e85ce2@onsemi.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "a221d3f7e3f3ea6a3b4bc511cf2a59242daa06e1",
      "tree": "66bffa1afe50fba5d8456cba731af4d2c7ee4cca",
      "parents": [
        "b542d13fab0f556660ce5f10179fb3ae66bdb9a4"
      ],
      "author": {
        "name": "Selvamani Rajagopal",
        "email": "Selvamani.Rajagopal@onsemi.com",
        "time": "Thu Jun 11 14:55:39 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:32:09 2026 -0700"
      },
      "message": "net: ethernet: oa_tc6: mdiobus-\u003eparent initialized with NULL\n\nAs \"dev\" pointer in oa_tc6 structure is never initialized,\nmbiobus-\u003eparent was initialized with NULL.  This change\nfixes it by initializing it with device pointer of spi.\n\nFixes: 8f9bf857e43b (\"net: ethernet: oa_tc6: implement internal PHY initialization\")\nSigned-off-by: Selvamani Rajagopal \u003cSelvamani.Rajagopal@onsemi.com\u003e\nLink: https://patch.msgid.link/20260611-level-trigger-v5-2-4533a9e85ce2@onsemi.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "b542d13fab0f556660ce5f10179fb3ae66bdb9a4",
      "tree": "ce47c541df401183408ce079fcefc29fdf439041",
      "parents": [
        "c02fca0bef5d1081173219f276df643abdb825ab"
      ],
      "author": {
        "name": "Selvamani Rajagopal",
        "email": "Selvamani.Rajagopal@onsemi.com",
        "time": "Thu Jun 11 14:55:38 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:32:09 2026 -0700"
      },
      "message": "net: ethernet: oa_tc6: Interrupt is active low, level triggered.\n\nAccording OPEN Alliance 10BASET1x MAC-PHY Serial Interface\nspecification, interrupt is active low, level triggered.\n\nCode used edge triggered interrupt which has the risk of losing an\ninterrupt on instances like when interrupt is disabled. Level\ntriggered interrupt won\u0027t be deasserted unless handler runs and\nclear the interrupting conditions.\n\nInterrupt handler mechanism is changed to threaded irq from\ninterrupt handler and kernel thread waiting on work queue.\nThreaded irq mechanism is best suited for level triggered interrupt\nas it disables the interrupt until handler is run in thread level,\nwhile giving us an ability to have interrupt context handler to\nsignal the threaded irq handler.\n\nIntroduced a logic to disable the device interrupt on error. Error\ncould be due in data chunk\u0027s header and footer or SPI interface itself.\nThis will avoid having repeated interrupts, in case the driver couldn\u0027t\nrecover from the error condition with the available recovery mechanism.\n\nFixes: 2c6ce5354453 (\"net: ethernet: oa_tc6: implement mac-phy interrupt\")\nSigned-off-by: Selvamani Rajagopal \u003cSelvamani.Rajagopal@onsemi.com\u003e\nLink: https://patch.msgid.link/20260611-level-trigger-v5-1-4533a9e85ce2@onsemi.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "c02fca0bef5d1081173219f276df643abdb825ab",
      "tree": "8934332e65e12972a178d1f493ca4f4768428fec",
      "parents": [
        "c66f8511a8109fa50767941b26d3623e316fde02",
        "f9691288413ceb4fc72f3ccc4d8e42adf66eb28d"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:22:23 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:22:24 2026 -0700"
      },
      "message": "Merge branch \u0027icssg-xdp-zero-copy-bug-fixes\u0027\n\nMeghana Malladi says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nICSSG XDP zero copy bug fixes [part]\n\nThis patch series fixes bugs introduced while adding xdp\nzero copy support in the icssg driver.\n\nPatch 1: Fix wakeup handling for Rx when available CPPI\ndescriptor is zero\nPatch 2,3: Fix destination tag in CPPI descriptor to enable\nproper Tx xmit for HSR offload mode with XDP and zero copy\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260611185744.2498070-1-m-malladi@ti.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f9691288413ceb4fc72f3ccc4d8e42adf66eb28d",
      "tree": "8934332e65e12972a178d1f493ca4f4768428fec",
      "parents": [
        "bcbf73d98195577a89e788179843f6d0c66244a5"
      ],
      "author": {
        "name": "Meghana Malladi",
        "email": "m-malladi@ti.com",
        "time": "Fri Jun 12 00:27:43 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:22:16 2026 -0700"
      },
      "message": "net: ti: icssg: Use undirected TX tag for XDP zero copy in HSR offload mode\n\nemac_xsk_xmit_zc() has the same issue as the fixed emac_xmit_xdp_frame():\nit always sets the CPPI5 descriptor destination tag to emac-\u003eport_id,\nwhich directs the PRU firmware to transmit on only one slave port in HSR\nmode, breaking redundancy.\n\nApply the same fix: in HSR offload mode when NETIF_F_HW_HSR_DUP is set,\nuse PRUETH_UNDIRECTED_PKT_DST_TAG (port 0) so the PRU duplicates frames\nto both ports. Also set PRUETH_UNDIRECTED_PKT_TAG_INS when\nNETIF_F_HW_HSR_TAG_INS is set so the PRU re-inserts the HSR sequence tag\nthat was stripped by the PRU on RX before the XDP program saw the frame.\n\nThis ensures XSK XDP_TX frames in HSR mode are treated identically to\nskb TX via hsr0.\n\nFixes: 8756ef2eb078 (\"net: ti: icssg-prueth: Add AF_XDP zero copy for TX\")\nSigned-off-by: Meghana Malladi \u003cm-malladi@ti.com\u003e\nLink: https://patch.msgid.link/20260611185744.2498070-4-m-malladi@ti.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "bcbf73d98195577a89e788179843f6d0c66244a5",
      "tree": "77a965f31b3e89d47c4634a19ca5555143d7c0cc",
      "parents": [
        "dfb787f7d157f97ba91344b584d33481f572530e"
      ],
      "author": {
        "name": "Meghana Malladi",
        "email": "m-malladi@ti.com",
        "time": "Fri Jun 12 00:27:42 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:22:16 2026 -0700"
      },
      "message": "net: ti: icssg: Use undirected TX tag for native XDP in HSR offload mode\n\nemac_xmit_xdp_frame() always sets the CPPI5 descriptor destination\ntag to emac-\u003eport_id, which directs the PRU firmware to transmit\nthe frame on that specific slave port only.  In HSR offload mode\nthis bypasses the firmware\u0027s HSR duplication logic: the frame goes\nout on one ring leg and never appears on the other, breaking HSR\nredundancy for XDP_TX paths.\n\nicssg_ndo_start_xmit() already handles this correctly: when HSR\noffload mode is active and NETIF_F_HW_HSR_DUP is set it substitutes\nPRUETH_UNDIRECTED_PKT_DST_TAG (port 0) so the PRU duplicates the\nframe to both slave ports.  It also sets PRUETH_UNDIRECTED_PKT_TAG_INS\nin epib[1] when NETIF_F_HW_HSR_TAG_INS is set so the PRU inserts the\nHSR sequence tag, which XDP_TX frames lack (the tag is stripped by\nthe PRU on RX before the frame reaches the XDP program).\n\nApply the same logic in emac_xmit_xdp_frame() so XDP_TX frames in\nHSR mode are treated identically to skb TX via hsr0.\n\nFixes: 62aa3246f462 (\"net: ti: icssg-prueth: Add XDP support\")\nSigned-off-by: Meghana Malladi \u003cm-malladi@ti.com\u003e\nLink: https://patch.msgid.link/20260611185744.2498070-3-m-malladi@ti.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "dfb787f7d157f97ba91344b584d33481f572530e",
      "tree": "7312222ffb6904a383b2cf08be1b1a609ccab519",
      "parents": [
        "c66f8511a8109fa50767941b26d3623e316fde02"
      ],
      "author": {
        "name": "Meghana Malladi",
        "email": "m-malladi@ti.com",
        "time": "Fri Jun 12 00:27:41 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:22:16 2026 -0700"
      },
      "message": "net: ti: icssg-prueth: Fix AF_XDP fill ring alloc and wakeup condition\n\nemac_rx_packet_zc() calls prueth_rx_alloc_zc() with count (frames\nreceived in the current NAPI poll) as the allocation budget.  Two\nproblems arise from this:\n\n1. When the CPPI5 descriptor pool is exhausted (avail_desc \u003d\u003d 0,\n   FDQ already holds the maximum number of descriptors), count \u003e 0\n   still triggers allocation attempts that all fail, spamming the\n   kernel log with \"rx push: failed to allocate descriptor\" at\n   high packet rates.\n\n2. The XSK wakeup condition \"ret \u003c count\" is wrong when avail_desc\n   is zero: ret \u003d\u003d 0 and count can be up to 64, so the condition is\n   always true.  This causes ~200 spurious ndo_xsk_wakeup() calls\n   per second even when the FDQ is already full, wasting CPU cycles\n   in repeated NAPI invocations that process zero frames.\n\nFix both by introducing alloc_budget \u003d min(budget, avail_desc):\n- When avail_desc \u003d\u003d 0 no allocation is attempted, avoiding pool\n  exhaustion errors.  The wakeup condition \"ret \u003c alloc_budget\"\n  evaluates to 0 \u003c 0 \u003d\u003d false, correctly clearing the wakeup flag\n  so the hardware IRQ re-arms NAPI without spurious kicks.\n- In steady state avail_desc \u003d\u003d count \u003c\u003d budget, so alloc_budget\n  \u003d\u003d count and behaviour is unchanged.\n- After a dry-ring stall (count \u003d\u003d 0, avail_desc \u003e 0), alloc_budget\n  \u003e 0 causes new descriptors to be posted to the FDQ so the hardware\n  can resume receiving immediately.\n\nFixes: 7a64bb388df3 (\"net: ti: icssg-prueth: Add AF_XDP zero copy for RX\")\nSigned-off-by: Meghana Malladi \u003cm-malladi@ti.com\u003e\nLink: https://patch.msgid.link/20260611185744.2498070-2-m-malladi@ti.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "7f80f60161497c1b5a1e15392b11e5f4e3a323e3",
      "tree": "4449851c19d181d7275a141d32b4c1bfb0bc2cf2",
      "parents": [
        "b0d62ed164247b55dc39f4f9f668e6e8e067763c",
        "ae57a55332436ca58d1824d3375478afd51dca6a"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:57:32 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 16:00:00 2026 -0700"
      },
      "message": "Merge branch \u0027tcp-rehash-onto-different-local-ecmp-path-on-retransmit-timeout\u0027\n\nNeil Spring says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\ntcp: rehash onto different local ECMP path on retransmit timeout\n\nCurrently sk_rethink_txhash() re-rolls the socket\u0027s txhash on RTO,\nPLB, and spurious-retransmission events, but the new hash is not\npropagated into the IPv6 ECMP path selection.  The cached\nroute is reused and fib6_select_path() is never re-invoked, so\nthe connection uses the same local ECMP decision.\n\nThis series adds the two missing pieces:\n\n1. __sk_dst_reset() alongside sk_rethink_txhash() so the cached dst\n   is invalidated and the next transmit triggers a fresh route lookup.\n\n2. fl6-\u003emp_hash set from sk_txhash before each route lookup so\n   fib6_select_path() picks a path from the (potentially re-rolled) hash.\n\nThe override applies only to fib_multipath_hash_policy 0 (the default L3\npolicy).  Its hash includes the flow label, but that is 0 by default\n(np-\u003eflow_label is unset; auto_flowlabels computes the on-wire label\nlater, per packet), so flows to the same peer share one local path.\nKeying it on sk_txhash makes that local path per-connection and lets a\nrehash re-select it; even when a flow label is present (reflected REPFLOW\nor explicitly set) only local path selection changes -- the on-wire flow\nlabel is unaffected.  Policies 1-3 are left unchanged.\n\nPatch 1 is the kernel change; patch 2 adds selftests covering rehash on\nSYN, SYN/ACK, midstream RTO, midstream spurious-retransmission, and PLB\nevents, plus a policy 1 negative test, a flowlabel-leak regression test,\na dst-rebuild consistency test, and a syncookie path-consistency test.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260615042158.1600746-1-ntspring@meta.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "ae57a55332436ca58d1824d3375478afd51dca6a",
      "tree": "4449851c19d181d7275a141d32b4c1bfb0bc2cf2",
      "parents": [
        "658eb696544cc0e39ef1d60795546e64f542604a"
      ],
      "author": {
        "name": "Neil Spring",
        "email": "ntspring@meta.com",
        "time": "Sun Jun 14 21:21:58 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:58:13 2026 -0700"
      },
      "message": "selftests: net: add local ECMP rehash test\n\nAdd ecmp_rehash.sh with nine scenarios verifying that TCP rehash\nselects a different local ECMP path for IPv6:\n\n  - SYN retransmission (forward path blocked during setup)\n  - SYN/ACK retransmission (reverse path blocked during setup)\n  - Midstream RTO (forward path blocked on established connection)\n  - Midstream ACK rehash (reverse path blocked on established connection)\n  - PLB rehash (ECN-driven congestion on established connection)\n  - Hash policy 1 negative test (rehash attempted but path unchanged)\n  - No flowlabel leak (client mp_hash does not alter on-wire flowlabel)\n  - Dst rebuild consistency (dst invalidation does not change path)\n  - Syncookie server path consistency (SYN-ACK and post-cookie ACKs\n    use the same ECMP path)\n\nThe policy 1 test verifies that fib_multipath_hash_policy\u003d1 computes\na deterministic 5-tuple hash, so txhash re-rolls do not change the\nECMP path while TcpTimeoutRehash still increments.\n\nThe flowlabel leak test sets auto_flowlabels\u003d0 on the client and\ninstalls tc filters on client egress that drop TCP packets with\nnonzero flowlabel, confirming that the client\u0027s fl6-\u003emp_hash does\nnot leak into the on-wire IPv6 flow label.\n\nThe PLB test needs DCTCP, a restricted congestion control.  Rather\nthan relax the host-global tcp_allowed_congestion_control (no\nper-netns equivalent), it pins dctcp on the test routes via the\ncongctl route attribute, confined to the test namespaces.\n\nThe dst rebuild test streams data, invalidates the cached dst by\nadding and removing a dummy route (bumping the fib6_node sernum),\nand verifies that traffic stays on the same path.  The sernum change\ncauses ip6_dst_check() to fail on the next transmit, triggering a\nfresh route lookup via inet6_csk_route_socket().\nECMP_REBUILD_ROUNDS\u003d10 repeats the check to reduce the probability\nof a buggy kernel passing by chance with 2-way ECMP.\n\nThe syncookie server path consistency test verifies that the\nserver\u0027s SYN-ACK and subsequent ACKs use the same ECMP path.\nWith syncookies, the request socket is freed after the SYN-ACK,\nso cookie_tcp_reqsk_init() must derive the same txhash (from the\ncookie) that was used for the SYN-ACK\u0027s route lookup.\n\nThe syncookie test forces tcp_syncookies\u003d2; it skips when\nCONFIG_SYN_COOKIES is not available.  selftests/net/config selects\nit (and CONFIG_TCP_CONG_DCTCP for the PLB test).\n\nSigned-off-by: Neil Spring \u003cntspring@meta.com\u003e\nLink: https://patch.msgid.link/20260615042158.1600746-3-ntspring@meta.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "658eb696544cc0e39ef1d60795546e64f542604a",
      "tree": "6b6892097d03896735425fccde69160fd8fd83bf",
      "parents": [
        "b0d62ed164247b55dc39f4f9f668e6e8e067763c"
      ],
      "author": {
        "name": "Neil Spring",
        "email": "ntspring@meta.com",
        "time": "Sun Jun 14 21:21:57 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:57:31 2026 -0700"
      },
      "message": "tcp: rehash onto different local ECMP path on retransmit timeout\n\nCurrently sk_rethink_txhash() re-rolls the socket\u0027s txhash on RTO, PLB,\nand spurious-retransmission events, but the cached route is reused and\nthe new hash is not propagated into the ECMP path selection logic.  Two\nchanges are needed to make rehash select a different local ECMP path:\n\n1. Add __sk_dst_reset() alongside sk_rethink_txhash() in\n   tcp_write_timeout(), tcp_rcv_spurious_retrans(), and\n   tcp_plb_check_rehash() so the cached dst is invalidated and the\n   next transmit triggers a fresh route lookup.\n\n2. Set fl6-\u003emp_hash from sk_txhash (or tcp_rsk(req)-\u003etxhash for\n   SYN/ACK retransmits and syncookies) in tcp_v6_connect(),\n   inet6_sk_rebuild_header(), inet6_csk_route_req(),\n   inet6_csk_route_socket(), tcp_v6_send_response(), and\n   cookie_v6_check() so fib6_select_path() picks a path based on the\n   new hash.\n\nThe mp_hash override only applies to fib_multipath_hash_policy 0 (the\ndefault L3 policy).  Its hash includes the flow label, but that is 0 by\ndefault -- np-\u003eflow_label is unset, and auto_flowlabels only computes\nthe on-wire label later, per packet -- so flows to the same peer share\none local path.  Keying the hash on sk_txhash makes the local path\nper-connection and lets a rehash re-select it.  Policies 1-3 are left\nunchanged.\n\nThe mp_hash assignment is factored into a small helper,\nip6_ecmp_set_mp_hash(), shared by inet6_csk_route_req(),\ninet6_csk_route_socket(), tcp_v6_connect(), inet6_sk_rebuild_header(),\ntcp_v6_send_response(), and cookie_v6_check().  It applies\n(txhash \u003e\u003e 1) ?: 1 for policy 0 (the \u003e\u003e 1 keeps mp_hash in the 31-bit\nrange; ?: 1 keeps it non-zero, since 0 would fall back to\nrt6_multipath_hash()).  inet6_csk_route_socket() calls it only for\nsk_protocol \u003d\u003d IPPROTO_TCP so that non-TCP callers (e.g., L2TP via\ninet6_csk_xmit) fall through to rt6_multipath_hash() and retain their\nexisting flow-key-based ECMP behavior.\n\ntcp_v6_send_response() also sets mp_hash from the response txhash so\nthat a control packet (a RST from the full socket, or an ACK from a\ntime-wait socket) selects the same local ECMP nexthop as the\nconnection\u0027s txhash rather than falling back to the flow hash.  The\ntime-wait socket\u0027s tw_txhash is copied from sk_txhash when the\nconnection enters TIME_WAIT, so it reflects any rehash that occurred.\n\nSetting mp_hash explicitly is necessary because the default ECMP hash\nderives from fl6-\u003eflowlabel via np-\u003eflow_label, which is not updated\nfrom sk_txhash (REPFLOW is off by default).  ip6_make_flowlabel()\ncannot help either, as it runs after the route lookup.\n\nAs a consequence, for policy 0 the local ECMP path of an IPv6 TCP\nflow follows sk_txhash even when fl6-\u003eflowlabel is non-zero, e.g. a\nreflected (REPFLOW) or explicitly set (IPV6_FLOWLABEL_MGR) flow\nlabel.  This is intentional: only local path selection changes, so\nrehash can recover from a failed path; the on-wire flow label is\nunchanged.\n\nsk_set_txhash() is moved before ip6_dst_lookup_flow() in\ntcp_v6_connect() so the initial ECMP path is selected by the same\ntxhash that subsequent route rebuilds will use.  This avoids\nunintended path changes when the cached dst is naturally invalidated\n(e.g., by PMTU discovery or route changes).\n\nThe rehash sites (tcp_write_timeout(), tcp_plb_check_rehash(), and\ntcp_rcv_spurious_retrans()) call __sk_rethink_txhash_reset_dst(),\nwhich re-rolls the txhash and, when it changed, drops the cached dst\nso the next transmit re-runs route selection.  The dst reset is\nguarded by sk-\u003esk_family \u003d\u003d AF_INET6 since IPv4 ECMP does not\ncurrently use sk_txhash for path selection.  For IPv4-mapped IPv6\nsockets this produces a redundant dst reset on a cold path\n(RTO/PLB); the subsequent IPv4 route lookup returns the same result.\nThe helper is deliberately separate from sk_rethink_txhash() itself:\ndst_negative_advice() calls sk_rethink_txhash() before its own dst op,\nso resetting the dst inside sk_rethink_txhash() would skip that op\n(e.g. rt6_remove_exception_rt()).\n\nFor syncookies, cookie_init_sequence() computes the cookie value\nbefore route_req() and sets txhash so the SYN-ACK selects the same\nECMP path that cookie_v6_check() will use when the full socket is\ncreated.  cookie_tcp_reqsk_init() derives txhash from the cookie so\nthe full socket\u0027s ECMP path matches the SYN-ACK.  Both the SYN-ACK\nassignment in tcp_conn_request() and the full-socket assignment in\ncookie_tcp_reqsk_init() set txhash from the cookie for IPv4 and IPv6\nalike.  On IPv6 this drives ECMP path selection; on IPv4, which does\nnot use sk_txhash for ECMP, it only affects TX-queue selection.  That\nselection scales the hash by its high bits (reciprocal_scale()), which\nare uniform in the keyed secure_tcp_syn_cookie() output -- the MSS index\nonly perturbs the low bits -- so the queue distribution matches\nnet_tx_rndhash().\n\ncookie_init_sequence() is split from the former version that also\ncalled tcp_synq_overflow() and incremented SYNCOOKIESSENT; those\nside effects are now in cookie_record_sent(), called after\nroute_req() succeeds so they are not bumped when route_req() fails.\ncookie_record_sent() is guarded by CONFIG_SYN_COOKIES to\nmatch the guard on tcp_synq_overflow().  route_req() receives 0 as\ntw_isn for the syncookie path so that tcp_v6_init_req() still saves\nireq-\u003epktopts for REPFLOW flowlabel reflection and IPv6 cmsg\noptions.  The ecn_ok clear for syncookies without timestamps stays\nafter tcp_ecn_create_request() so it takes precedence.\n\nSigned-off-by: Neil Spring \u003cntspring@meta.com\u003e\nReviewed-by: Eric Dumazet \u003cedumazet@google.com\u003e\nLink: https://patch.msgid.link/20260615042158.1600746-2-ntspring@meta.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "b0d62ed164247b55dc39f4f9f668e6e8e067763c",
      "tree": "3dca4b9f47a7d71c254d6137a8a176435897dc9f",
      "parents": [
        "eb82367bca5656c99d98bba65f101776e2c2dc36"
      ],
      "author": {
        "name": "Wayen.Yan",
        "email": "win847@gmail.com",
        "time": "Sun Jun 14 07:52:39 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:53:57 2026 -0700"
      },
      "message": "net: airoha: Fix MODULE_LICENSE to match SPDX GPL-2.0-only identifier\n\nBoth airoha_eth.c and airoha_npu.c declare SPDX-License-Identifier:\nGPL-2.0-only but use MODULE_LICENSE(\"GPL\"), which the kernel module\nloader interprets as GPL-2.0+ (any GPL version). This mismatch causes\nlicense compliance tools (FOSSology, ScanCode, etc.) to misidentify\nthe effective license as more permissive than intended.\n\nReplace MODULE_LICENSE(\"GPL\") with MODULE_LICENSE(\"GPL v2\") to\nalign with the GPL-2.0-only SPDX identifier. Per include/linux/module.h,\n\"GPL v2\" maps to GPL-2.0-only, matching the source files\u0027 declared\nlicense.\n\nSigned-off-by: Wayen \u003cwin847@gmail.com\u003e\nLink: https://patch.msgid.link/6a2ded59.63d39acb.391892.7632@mx.google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "eb82367bca5656c99d98bba65f101776e2c2dc36",
      "tree": "278c2a31420e397e1af5a3879cb6398c3faa38aa",
      "parents": [
        "952d66f16dcd0d7c24b3187e79a292549ef83bf0"
      ],
      "author": {
        "name": "Ethan Nelson-Moore",
        "email": "enelsonmoore@gmail.com",
        "time": "Sat Jun 13 16:37:25 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:52:54 2026 -0700"
      },
      "message": "sctp: correct CONFIG_SCTP_DBG_OBJCNT macro name in comment\n\nA comment in \u003cnet/sctp/sctp.h\u003e incorrectly refers to\nCONFIG_SCTP_DBG_OBJCOUNT instead of CONFIG_SCTP_DBG_OBJCNT. Correct it.\n\nDiscovered while searching for CONFIG_* symbols referenced in code but\nnot defined in any Kconfig file.\n\nSigned-off-by: Ethan Nelson-Moore \u003cenelsonmoore@gmail.com\u003e\nLink: https://patch.msgid.link/20260613233725.162470-1-enelsonmoore@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "952d66f16dcd0d7c24b3187e79a292549ef83bf0",
      "tree": "5bdcad1864399e7ac596ad0e11b32f63018012a4",
      "parents": [
        "a061dfb063fa03ed09cf21145ffff247cf94721a"
      ],
      "author": {
        "name": "Ethan Nelson-Moore",
        "email": "enelsonmoore@gmail.com",
        "time": "Sat Jun 13 15:59:00 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:46:47 2026 -0700"
      },
      "message": "net/mlx5: HWS: correct CONFIG_MLX5_HW_STEERING macro name in comment\n\nA comment in\ndrivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.h\nincorrectly refers to CONFIG_MLX5_HWS_STEERING instead of\nCONFIG_MLX5_HW_STEERING. Correct it.\n\nDiscovered while searching for CONFIG_* symbols referenced in code but\nnot defined in any Kconfig file.\n\nSigned-off-by: Ethan Nelson-Moore \u003cenelsonmoore@gmail.com\u003e\nReviewed-by: Gal Pressman \u003cgal@nvidia.com\u003e\nLink: https://patch.msgid.link/20260613225904.140791-1-enelsonmoore@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "a061dfb063fa03ed09cf21145ffff247cf94721a",
      "tree": "308233ddce2e55d5229104517b9ebd1b477a4c55",
      "parents": [
        "05173fa30add3787e7ab2e735c4ee00431994259"
      ],
      "author": {
        "name": "Wayen.Yan",
        "email": "win847@gmail.com",
        "time": "Sat Jun 13 08:41:16 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:45:45 2026 -0700"
      },
      "message": "net: airoha: Fix typos in comments and Kconfig\n\nFix several typos found during code review:\n- Kconfig: \"Aiorha\" -\u003e \"Airoha\" in NET_AIROHA_FLOW_STATS help text\n- Comment: \"CMD1\" -\u003e \"CDM1\" (Central DMA, not Command)\n- Comments: \"GMD1/2/3/4\" -\u003e \"GDM1/2/3/4\" (Gigabit DMA, not GMD)\n\nThese are pure comment and documentation fixes with no functional impact.\n\nSigned-off-by: Wayen.Yan \u003cwin847@gmail.com\u003e\nAcked-by: Lorenzo Bianconi \u003clorenzo@kernel.org\u003e\nLink: https://patch.msgid.link/6a2ca74a.c5b1db4e.21a698.01e7@mx.google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "c66f8511a8109fa50767941b26d3623e316fde02",
      "tree": "606c99a82d56a5c8a8fdb4cc1e71810e28054045",
      "parents": [
        "f3d64e53998aad11abceeeea1d7fe4e563770598"
      ],
      "author": {
        "name": "Wayen.Yan",
        "email": "win847@gmail.com",
        "time": "Sat Jun 13 08:23:12 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:45:14 2026 -0700"
      },
      "message": "net: airoha: Fix always-true condition in PPE1 queue reservation loop\n\nIn airoha_fe_pse_ports_init(), the inner condition for PPE1 queue\nreservation is identical to the for-loop bound, making it always true\nand the else branch dead code:\n\n  for (q \u003d 0; q \u003c pse_port_num_queues[FE_PSE_PORT_PPE1]; q++) {\n      if (q \u003c pse_port_num_queues[FE_PSE_PORT_PPE1])  /* always true */\n          set RSV_PAGES;\n      else\n          set 0;  /* unreachable */\n  }\n\nThe intended behavior is to reserve pages only for the first half of\nthe queues, matching the PPE2 implementation on line 334 which\ncorrectly uses the /2 divisor. Fix the PPE1 condition accordingly.\n\nFixes: 23020f049327 (\"net: airoha: Introduce ethernet support for EN7581 SoC\")\nSigned-off-by: Wayen.Yan \u003cwin847@gmail.com\u003e\nAcked-by: Lorenzo Bianconi \u003clorenzo@kernel.org\u003e\nLink: https://patch.msgid.link/6a2ca3de.ad59c0a6.147df9.2ac1@mx.google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "05173fa30add3787e7ab2e735c4ee00431994259",
      "tree": "a8b5d2f28d84fa2d7af6153972e7a7301434c960",
      "parents": [
        "14dacf766c2518147522dbf5649228d27ef3e1ab"
      ],
      "author": {
        "name": "Wayen.Yan",
        "email": "win847@gmail.com",
        "time": "Sat Jun 13 08:22:31 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:44:26 2026 -0700"
      },
      "message": "net: airoha: Fix non-standard return value in airoha_ppe_get_wdma_info()\n\nairoha_ppe_get_wdma_info() returns -1 when the last path in the\nforwarding path stack is not of type DEV_PATH_MTK_WDMA. This is not\na standard kernel error code. Replace it with -EINVAL since the\ninput path type is invalid from the caller\u0027s perspective.\n\nSigned-off-by: Wayen.Yan \u003cwin847@gmail.com\u003e\nAcked-by: Lorenzo Bianconi \u003clorenzo@kernel.org\u003e\nLink: https://patch.msgid.link/6a2ca3d9.ad59c0a6.147df9.2a62@mx.google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "14dacf766c2518147522dbf5649228d27ef3e1ab",
      "tree": "bd9f6dea9d5346e6d819c6e216f0170247953f6e",
      "parents": [
        "a61bb36996db340edd861f305c1360185fe12127",
        "d9e4dd3c6f1fab3531d954c4ddedd7207402920b"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:42:55 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:42:56 2026 -0700"
      },
      "message": "Merge branch \u0027docs-net-more-adjustments-to-docs\u0027\n\nJakub Kicinski says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\ndocs: net: more adjustments to docs\n\nA few small updates to the docs.\nThis is trying to prepare docs for getting fed directly\ninto AI reviews.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260613165846.2913092-1-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "d9e4dd3c6f1fab3531d954c4ddedd7207402920b",
      "tree": "bd9f6dea9d5346e6d819c6e216f0170247953f6e",
      "parents": [
        "e504cf18ef4706b4794fb91a010d345e3d48c72d"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Sat Jun 13 09:58:46 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:42:53 2026 -0700"
      },
      "message": "docs: net: fix minor issues with strparser docs\n\nNot sure if anyone would read this doc, but the API has evolved\nsince it was written. Update to:\n- show the int return type for strp_init()\n- refer to strp_data_ready(), not the old strp_tcp_data_ready() name\n- direct users to strp_msg(skb) for strparser metadata instead of\n  treating skb-\u003ecb as struct strp_msg directly\n\nLink: https://patch.msgid.link/20260613165846.2913092-4-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "e504cf18ef4706b4794fb91a010d345e3d48c72d",
      "tree": "183144e0dc1acaebd3c5155fa33d1c078f475806",
      "parents": [
        "c8ee634048ddab66580c168174c9d46ce1b0fc53"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Sat Jun 13 09:58:45 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:42:53 2026 -0700"
      },
      "message": "docs: net: fix minor issues with devlink docs\n\nUpdate devlink documentation to match current code:\n\n- describe health reporter defaults (it\u0027s currently under \"callbacks\"),\n  best-effort auto-dump, and port-scoped reporters\n- fix generic parameter names and values\n- fix nested devlink setup wording and registration ordering\n\nLink: https://patch.msgid.link/20260613165846.2913092-3-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "c8ee634048ddab66580c168174c9d46ce1b0fc53",
      "tree": "d381c2735291e58e6935d8f575dfebede3b62cd7",
      "parents": [
        "a61bb36996db340edd861f305c1360185fe12127"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Sat Jun 13 09:58:44 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:42:52 2026 -0700"
      },
      "message": "docs: net: tls-offload: document tls_dev_del, tls_dev_resync, and rekey\n\nFill in some gaps in the TLS offload doc:\n\n- describe the tls_dev_del and tls_dev_resync callbacks\n- add a mention of rekeying being out of scope for now\n\nReviewed-by: Sabrina Dubroca \u003csd@queasysnail.net\u003e\nLink: https://patch.msgid.link/20260613165846.2913092-2-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "a61bb36996db340edd861f305c1360185fe12127",
      "tree": "1b8cc55134a532065d72a03cb9586e59a2e28b1b",
      "parents": [
        "f34c6b3a3c3d98f34918e1d2ea846a5acccac6d1",
        "0384ba23186859fe3871d1071ed769d23d0d773d"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:46 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:47 2026 -0700"
      },
      "message": "Merge branch \u0027net-atlantic-add-ptp-support-for-aqc113-antigua\u0027\n\nSukhdeep Singh says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnet: atlantic: add PTP support for AQC113 (Antigua)\n\nThis series adds IEEE 1588 PTP support for the AQC113 (Antigua) network\ncontroller. AQC113 is the successor to the existing AQC107 (Atlantic)\nchip already supported by the atlantic driver.\n\nAQC113 uses a substantially different hardware architecture for PTP\ncompared to AQC107:\n\n  - Dual on-chip TSG clocks with direct register access instead of\n    PHY-based timestamping via firmware\n  - TX timestamps via descriptor writeback instead of firmware mailbox\n  - Hardware L3/L4 RX filters for PTP multicast steering with both\n    IPv4 and IPv6 support\n  - Reference-counted shared filter slots managed through an Action\n    Resolver Table (ART), allowing multiple rules to share L3/L4\n    hardware filters when their match criteria are identical\n\nThe series is structured in four parts:\n\nPatches 1-3 prepare the existing L3/L4 filter path:\n\n  Patch 1 corrects flow_type masking and IPv6 address handling in\n  aq_set_data_fl3l4(). Patch 2 moves the active_ipv4/ipv6 bitmap\n  updates to after the hardware write succeeds. Patch 3 decouples\n  the function from driver-internal structures so it can be called\n  directly by the AQC113 PTP filter setup code.\n\nPatches 4-5 add the AQC113 hardware infrastructure:\n\n  Patch 4 adds the low-level register definitions and accessor\n  functions. Patch 5 adds filter data structures and firmware\n  capability query.\n\nPatches 6-7 implement the AQC113 L2/L3/L4 RX filter management:\n\n  Patch 6 fixes the AQC113 HW init path: ART section selection,\n  L2 filter slot assignment, and MAC address programming. Patch 7\n  implements the complete L3/L4 RX filter ops including reference-\n  counted ART sharing and IPv4/IPv6 steering.\n\nPatches 8-12 add the AQC113 PTP feature:\n\n  Patch 8 reserves the dedicated PTP traffic class buffer and\n  configures the TX path. Patch 9 extends the hw_ops interface\n  with PTP-specific function pointers and updates AQC107 to the\n  new signatures. Patches 10-12 implement the full PTP subsystem:\n  Patch 10 adds the hw_atl2 register-level PTP clock ops, Patch 11\n  adds TX timestamp polling and PTP TX traffic classification, and\n  Patch 12 integrates PTP into aq_ptp and the driver core.\n\nThe existing AQC107 PTP implementation is not functionally changed\nby this series; AQC113-specific code paths are gated on chip\ndetection throughout.\n\nTested on AQC113 at 1G, 2.5G, 5G, and 10G link speeds using\nptp4l/phc2sys with hardware timestamping in both L2 and L4\n(IPv4/IPv6) modes.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260610115448.272-1-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "0384ba23186859fe3871d1071ed769d23d0d773d",
      "tree": "1b8cc55134a532065d72a03cb9586e59a2e28b1b",
      "parents": [
        "da8222888659610f2faf050dea02b8c9bebf4c40"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:48 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:44 2026 -0700"
      },
      "message": "net: atlantic: add AQC113 PTP support in aq_ptp and driver core\n\naq_ptp.c / aq_ptp.h:\n- Add aq_ptp_state enum (AQ_PTP_FIRST_INIT, AQ_PTP_LINK_UP,\n  AQ_PTP_NO_LINK) to distinguish first init from link-change events;\n  on AQC113 only reset the TSG clock on first init to avoid disrupting\n  ongoing synchronization.\n- Add aq_ptp_dpath_enable() for comprehensive L3/L4 PTP filter\n  setup/teardown, replacing the previous single-filter approach with\n  an array of 4 slots for IPv4 and IPv6 PTP multicast addresses\n  (224.0.1.129, 224.0.0.107, ff0e::181, ff02::6b).\n- Add aq_ptp_parse_rx_filters() to map hwtstamp_rx_filters to L2/L4\n  enable flags and call aq_ptp_dpath_enable().\n- Re-apply RX filters on link change (hardware state lost after reset).\n- Extend PTP ring alloc/init/start/stop to handle AQC113 PTP ring ops.\n- Add per-instance PTP offset table for AQC113 with empirically measured\n  values at 100M/1G/2.5G/5G/10G link speeds.\n- Export aq_ptp_dpath_enable() and updated ring helpers in aq_ptp.h.\n\naq_hw.h:\n- Include hw_atl2/hw_atl2.h for AQC113 PTP type definitions.\n\naq_nic.c:\n- Account for PTP IRQ vector (AQ_HW_PTP_IRQS) in vector count math.\n- Call hw_atl2 PTP re-enable hook after hardware reset in\n  aq_nic_update_link_status().\n\naq_pci_func.c:\n- Pass PTP IRQ index to aq_ptp_irq_alloc() in probe path.\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-13-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "da8222888659610f2faf050dea02b8c9bebf4c40",
      "tree": "d1e9041defdd5470d291096a2252a5259c3d3d1f",
      "parents": [
        "f6a7a4bcc5d3402a44ef3344157ba4e0420317d1"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:47 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:44 2026 -0700"
      },
      "message": "net: atlantic: add AQC113 TX timestamp polling and PTP TX classification\n\naq_ring.h / aq_ring.c:\n- Add ptp_ts_deadline field to aq_ring_s to track TX timestamp timeout.\n- In aq_ring_tx_clean(): when hw_ring_tx_ptp_get_ts() returns 0 (HW not\n  yet written back the timestamp), clear buff-\u003eis_mapped and buff-\u003epa\n  before breaking to prevent double dma_unmap on retry.  When\n  ptp_ts_deadline expires, dequeue and drop the head of skb_ring to keep\n  it in lockstep with buff_ring, then clear request_ts and free the skb\n  via dev_kfree_skb_any() to unblock the ring.\n\naq_main.c:\n- Add IPv6 PTP packet detection in aq_ndev_start_xmit() using\n  ipv6_hdr()-\u003enexthdr for ETH_P_IPV6 frames, steering them through\n  aq_ptp_xmit() alongside the existing IPv4 path.\n- Use PTP_EV_PORT/PTP_GEN_PORT constants instead of magic numbers 319/320.\n- Remove duplicate aq_reapply_rxnfc_all_rules() and\n  aq_filters_vlans_update()\n  calls from aq_ndev_open() - now covered by aq_nic_start(), which also\n  ensures filters are restored correctly after PM resume.\n\naq_nic.c:\n- Move aq_reapply_rxnfc_all_rules() and aq_filters_vlans_update() into\n  aq_nic_start() after hardware init, replacing the duplicate calls that\n  were removed from aq_ndev_open().\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-12-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f6a7a4bcc5d3402a44ef3344157ba4e0420317d1",
      "tree": "806afafe08ef97ee0ea827a71ef6440dec542a8b",
      "parents": [
        "f4f2bfe2b2eaab42a598e1f65b6d42db44e3b0ca"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:46 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:44 2026 -0700"
      },
      "message": "net: atlantic: add AQC113 PTP hardware ops in hw_atl2\n\nAdd the hardware-layer PTP implementation for AQC113 (Antigua):\n\n- hw_atl2.h/hw_atl2_utils.h/hw_atl2_internal.h: add PTP offset\n  constants, RX timestamp size (HW_ATL2_RX_TS_SIZE\u003d8), and reduced\n  HW_ATL2_RXBUF_MAX\u003d172 (AQC113 on-chip RX packet buffer hardware\n  limit for data TCs).\n\n- hw_atl2.c: implement hw_atl2_enable_ptp() to reset and enable TSG\n  clocks and set PTP TC scheduling priority after hardware reset.\n\n- hw_atl2.c: implement hw_atl2_adj_sys_clock(), hw_atl2_adj_clock_freq(),\n  and aq_get_ptp_ts() for TSG clock read/adjust/increment operations.\n\n- hw_atl2.c: implement hw_atl2_gpio_pulse() for PPS output generation\n  via TSG pulse generator.\n\n- hw_atl2.c: implement hw_atl2_hw_tx_ptp_ring_init() and\n  hw_atl2_hw_rx_ptp_ring_init() for PTP ring setup.\n\n- hw_atl2.c: implement hw_atl2_hw_ring_tx_ptp_get_ts() to read TX\n  timestamp from descriptor writeback, and hw_atl2_hw_rx_extract_ts()\n  to extract RX timestamp from the 8-byte packet trailer.\n\n- hw_atl2.c: add hw_atl2_hw_get_clk_sel() helper.\n\n- Wire all new ops into hw_atl2_ops.\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-11-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f4f2bfe2b2eaab42a598e1f65b6d42db44e3b0ca",
      "tree": "e63d011af5bfc9af6ecb1645707b409ae5f0586d",
      "parents": [
        "5e7c8f8e96b4b352ccf168e06df46aa40ee0b715"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:45 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:44 2026 -0700"
      },
      "message": "net: atlantic: extend hw_ops and TX descriptor for AQC113 PTP\n\nExtend the aq_hw_ops interface with new function pointers required for\nPTP support on AQC113:\n- enable_ptp: enable/disable PTP counter with clock selection\n- hw_ring_tx_ptp_get_ts: read TX timestamp from descriptor writeback\n- hw_tx_ptp_ring_init/hw_rx_ptp_ring_init: per-ring PTP initialization\n- hw_get_clk_sel: query active TSG clock selection\n\nUpdate existing hw_ops signatures to support AQC113 dual-clock\narchitecture:\n- hw_gpio_pulse: add clk_sel and hightime parameters\n- hw_extts_gpio_enable: add channel parameter\n\nAdd PTP-related hardware defines:\n- AQ_HW_TXD_CTL_TS_EN/TS_TSG0 for TX descriptor timestamp control\n- AQ2_HW_PTP_COUNTER_HZ for AQC113 TSG clock frequency\n- AQ_HW_PTP_IRQS for PTP interrupt vector accounting\n- PTP enable flags (L2/L4) and TSG clock selection constants\n\nAdd request_ts and clk_sel bitfields to aq_ring_buff_s for per-packet\nTX timestamp request tracking.\n\nUpdate hw_atl_b0.c (AQC107) implementations:\n- Adapt gpio_pulse and extts_gpio_enable to new signatures\n- Add TX descriptor timestamp bits for AQC113 when ANTIGUA chip\n  feature is detected\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-10-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "5e7c8f8e96b4b352ccf168e06df46aa40ee0b715",
      "tree": "b335b83a54025ee9cc9f301d5c869ae318641449",
      "parents": [
        "ddce0b1bc00249dc42470884a02c0a41d8f64a86"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:44 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:44 2026 -0700"
      },
      "message": "net: atlantic: add AQC113 PTP traffic class and TX path setup\n\nAdd PTP traffic class (TC) buffer reservation and TX path\nimprovements for AQC113:\n\n- Reserve dedicated TX and RX buffer space for PTP TC when PTP is\n  enabled, reducing user TC buffers accordingly (TX: 8KB, RX: 16KB).\n- Configure PTP TC with no flow control and highest priority\n  scheduling to ensure timely PTP packet transmission.\n\nTX path improvements:\n- Increase TX data and descriptor read-request limits when firmware\n  has already enabled extended PCIe tag mode.\n\nAlso simplify RSS queue calculation in hw_atl2_hw_rss_set() by\nextracting to a local variable and use unsigned types for loop\nvariables to match their usage.\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-9-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "ddce0b1bc00249dc42470884a02c0a41d8f64a86",
      "tree": "fe9fc265e78bec8d57dfca396e5dbbee3f719ed2",
      "parents": [
        "6c1ca112a6e4e62706477b06ea94fa0fd8ff2e66"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:43 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:43 2026 -0700"
      },
      "message": "net: atlantic: implement AQC113 L2/L3/L4 RX filter ops\n\nImplement complete RX filter management for AQC113 hardware:\n\n- Add tag-based ethertype filter policy (hw_atl2_filter_tag_get/put)\n  that allocates and releases ART tags for L2 ethertype filters.\n\n- Add L3/L4 filter sharing via serialized usage counters in\n  hw_atl2_l3_filter/hw_atl2_l4_filter, managed through\n  hw_atl2_rxf_l3_get/put and hw_atl2_rxf_l4_get/put.\n\n- Implement L3 (IPv4/IPv6 source/destination address and protocol)\n  filter find, get (program HW and increment refcount), and put\n  (decrement refcount and clear HW when last user releases).\n\n- Implement L4 (TCP/UDP/SCTP source/destination port) filter management\n  with the same find/get/put pattern.\n\n- Add combined L3L4 filter configuration (hw_atl2_new_fl3l4_configure)\n  that translates legacy aq_rx_filter_l3l4 commands into AQC113 separate\n  L3+L4 filter programming with Action Resolver Table (ART) entries.\n\n- Add L2 ethertype filter set/clear (hw_atl2_hw_fl2_set/clear) with\n  tag-based ART integration.\n\n- Wire .hw_filter_l2_set, .hw_filter_l2_clear, .hw_filter_l3l4_set\n  into hw_atl2_ops.\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-8-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "6c1ca112a6e4e62706477b06ea94fa0fd8ff2e66",
      "tree": "3dd7a39d68f68d9d9e086a080a4652dd435d9840",
      "parents": [
        "4428d3b99414e1402d4b4351c05e7a0d969bafa1"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:42 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:43 2026 -0700"
      },
      "message": "net: atlantic: fix AQC113 HW init: ART, L2 filter slot, MAC address\n\nFix initialization issues in hw_atl2 to correctly support AQC113:\n\n- hw_atl2_hw_reset: replace unconditional priv memset with selective\n  field clears so that l3l4_filters[].l3_index and l4_index can be\n  initialized to -1 (not allocated) rather than 0; 0 is a valid filter\n  index and would incorrectly appear as an occupied slot after a reset.\n\n- hw_atl2_hw_init_new_rx_filters: use firmware-reported ART section\n  base and count (clamped to 16) instead of hardcoded 0xFFFF mask;\n  enable simultaneous IPv4/IPv6 L3 filter mode (rpf_l3_v6_v4_select);\n  tag the UC MAC slot using firmware-supplied l2_filters_base_index\n  instead of hardcoded HW_ATL2_MAC_UC.\n\n- hw_atl2_hw_init_rx_path: enable only the firmware-assigned MAC slot\n  (priv-\u003el2_filters_base_index) instead of always slot 0.\n\n- Add hw_atl2_hw_mac_addr_set() that programs the MAC address into\n  the firmware-assigned L2 filter slot.  Wire into hw_atl2_ops\n  replacing the A1 hw_atl_b0_hw_mac_addr_set; call it from hw_init.\n\n- Wire .hw_get_regs into hw_atl2_ops.\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-7-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "4428d3b99414e1402d4b4351c05e7a0d969bafa1",
      "tree": "f1f6393768a9bbfafa992c5f14734cf71cc2c3e0",
      "parents": [
        "228c40913220aa2ee3ea3bea739482b79dcfa3cd"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:41 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:43 2026 -0700"
      },
      "message": "net: atlantic: add AQC113 filter data structures, firmware query and register dump\n\nAdd filter infrastructure for AQC113 hardware:\n\n- Define L3 (IPv4/IPv6), L4 (TCP/UDP/SCTP), and combined L3L4 filter\n  structures with serialized usage counter for filter sharing.\n- Define tag policy structure for ethertype filter management.\n- Add RPF L3/L4 command bit definitions for filter programming.\n- Add filter count constants for L3L4, L3V4, L4, VLAN, and ethertype.\n- Extend hw_atl2_priv with filter arrays, base indices, and counts\n  discovered from firmware.\n\nQuery filter capabilities from firmware shared memory at init time\nto discover available L2/L3/L4/VLAN/ethertype filter resources and\nART (Action Resolver Table) configuration.\n\nAdd hardware register dump utility for AQC113 debug support.\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-6-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "228c40913220aa2ee3ea3bea739482b79dcfa3cd",
      "tree": "44c125e76c7b7273e06508bb2ee04b5aa8d80d58",
      "parents": [
        "7bd18209741f54c1b10e0ab172673945ebab8a88"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:40 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:43 2026 -0700"
      },
      "message": "net: atlantic: add AQC113 hardware register definitions and accessors\n\nAdd low-level hardware register definitions and accessor functions\nfor AQC113 (Antigua) chip features:\n\n- L3/L4 filter command, tag, and address registers for IPv4/IPv6\n- Ethertype filter tag registers\n- TSG (Time Stamp Generator) clock control, modification, and\n  GPIO event generation/input timestamp registers\n- TX descriptor timestamp writeback, timestamp enable, and AVB\n  enable registers\n- TX data/descriptor read request limit registers\n- TPB highest priority TC registers\n- PCIe extended tag enable register\n- RX descriptor timestamp request register\n- Action resolver section enable getter\n- GPIO special mode and TSG external GPIO TS input select\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-5-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "7bd18209741f54c1b10e0ab172673945ebab8a88",
      "tree": "28c465a80e8e7dd239805d3a8fa24c5b0320011c",
      "parents": [
        "dfb7a7468b94d9dec7744938b03e742dda41ca02"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:39 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:43 2026 -0700"
      },
      "message": "net: atlantic: decouple aq_set_data_fl3l4() from driver internals\n\nRefactor aq_set_data_fl3l4() to take an ethtool_rx_flow_spec pointer and\nan explicit HW register location instead of driver-internal structures\n(aq_nic_s, aq_rx_filter). This makes the function reusable for PTP\nfilter setup which constructs flow specs independently.\n\nKey changes:\n- Add aq_is_ipv6_flow_type() helper to derive IPv6 status from the\n  flow_type field, replacing the dependency on rx_fltrs-\u003efl3l4.is_ipv6\n  shared state.\n- Change aq_set_data_fl3l4() signature to accept (fsp, data, location,\n  add) and export it via aq_filters.h.\n- Update aq_add_del_fl3l4() to compute the HW register location and\n  pass it explicitly.\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-4-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "dfb7a7468b94d9dec7744938b03e742dda41ca02",
      "tree": "d685652daeb1df68216135a61cc8289357de446b",
      "parents": [
        "9ed479cd9fd38f1e71da2eaff6fd949a765ac2ae"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:38 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:43 2026 -0700"
      },
      "message": "net: atlantic: move active_ipv4/ipv6 bitmap updates after HW write\n\nMove active_ipv4/active_ipv6 bitmap updates from aq_set_data_fl3l4()\ninto aq_add_del_fl3l4() after the hardware write succeeds. The bitmaps\ntrack which filter slots are actively programmed in hardware and must\nonly be updated once the HW write is confirmed.\n\nThe bitmap updates in aq_nic_reserve_filter() and aq_nic_release_filter()\nare intentionally retained: they guard the aq_check_approve_fl3l4()\nIPv4/IPv6 mixing validation for callers such as the AQC113 PTP path that\nprogram filters directly via hw_atl2_new_fl3l4_configure() without going\nthrough aq_add_del_fl3l4().\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-3-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "9ed479cd9fd38f1e71da2eaff6fd949a765ac2ae",
      "tree": "0b75fbdf1f75bb1308d998fc1bd814e249d2ee61",
      "parents": [
        "f34c6b3a3c3d98f34918e1d2ea846a5acccac6d1"
      ],
      "author": {
        "name": "Sukhdeep Singh",
        "email": "sukhdeeps@marvell.com",
        "time": "Wed Jun 10 17:24:37 2026 +0530"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 15:38:42 2026 -0700"
      },
      "message": "net: atlantic: correct L3L4 filter flow_type masking and IPv6 handling\n\nCorrect three issues in aq_set_data_fl3l4() required for the AQC113\nPTP filter path introduced later in this series:\n\n1. Mask FLOW_EXT from flow_type before the protocol switch statement.\n   Flow types with FLOW_EXT set (e.g. TCP_V4_FLOW | FLOW_EXT) fall\n   through to the default case and skip protocol comparison flags.\n\n2. Extend the L3 address comparison check to cover all four IPv6\n   words. The original code only checked ip_src[0]/ip_dst[0] and\n   required !is_ipv6, so CMP_SRC_ADDR_L3/CMP_DEST_ADDR_L3 were never\n   set for IPv6 filters.\n\n3. Use explicit flow type checks for port extraction instead of\n   negating IP_USER_FLOW/IPV6_USER_FLOW. The old check did not mask\n   FLOW_EXT, so IP_USER_FLOW | FLOW_EXT would incorrectly attempt\n   port extraction. Use the actual flow type to pick the correct\n   union member directly.\n\nSigned-off-by: Sukhdeep Singh \u003csukhdeeps@marvell.com\u003e\nLink: https://patch.msgid.link/20260610115448.272-2-sukhdeeps@marvell.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f34c6b3a3c3d98f34918e1d2ea846a5acccac6d1",
      "tree": "561fa9fe14c05f2aa969450a5fc9e5523172c882",
      "parents": [
        "3b165c2a29cfb6453f26e1ac833ca6afd28d28cf",
        "05b5ee610fbb8ca4ce9dc21299442aa827b38008"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:45 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:45 2026 -0700"
      },
      "message": "Merge branch \u0027net-dsa-netc-add-bridge-mode-support\u0027\n\nWei Fang says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnet: dsa: netc: add bridge mode support\n\nThis series adds bridge mode support to the NETC DSA switch driver,\ncovering both VLAN-aware and VLAN-unaware operation.\n\nThe NETC switch manages forwarding through a set of hardware tables\naccessed via NTMP: the FDB table (FDBT), VLAN filter table (VFT), egress\ntreatment table (ETT), and egress count table (ECT). The series extends\nthe NTMP layer with the operations required for bridging, then builds the\nDSA bridge callbacks on top.\n\nSince all switch ports share the VFT, so only one VLAN-aware bridge is\nsupported.\n\nFDB aging is managed in software. A periodic delayed work sweeps the\ntable using the hardware activity element mechanism, with a default aging\ntime of 300 seconds matching the IEEE 802.1Q standard. Per-port entries\nare also flushed immediately on bridge leave and link-down events.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260611021458.2629145-1-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "05b5ee610fbb8ca4ce9dc21299442aa827b38008",
      "tree": "561fa9fe14c05f2aa969450a5fc9e5523172c882",
      "parents": [
        "751aa5a5d593e19204d3e8ed0787a18a29a18690"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:58 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:06 2026 -0700"
      },
      "message": "net: dsa: netc: implement dynamic FDB entry ageing\n\nThe NETC switch does not age out dynamic FDB entries automatically.\nWithout software management, stale entries persist after topology\nchanges and cause incorrect forwarding.\n\nAdd a delayed work that periodically removes entries that have not been\nrefreshed within the specified cycles. The effective ageing time is:\n\n  ageing_time \u003d fdbt_ageing_delay * 100\n\nDefault values are 3s interval and 100 cycles (300s total), matching\nthe IEEE 802.1Q default ageing time. The work starts when the first\nport joins a bridge (tracked via br_cnt) and is cancelled when the\nlast port leaves. All FDB operations are serialized under fdbt_lock.\n\nImplement .set_ageing_time() to allow the bridge layer to reconfigure\nageing parameters on demand.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-10-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "751aa5a5d593e19204d3e8ed0787a18a29a18690",
      "tree": "d5640c4256d30ee70611430c101d00f9f1efcf69",
      "parents": [
        "84b4a3b30abd226ec528985d7c3cb63a3376d098"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:57 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:06 2026 -0700"
      },
      "message": "net: dsa: netc: add bridge mode support\n\nWire up the port_bridge_join, port_bridge_leave and port_vlan_filtering\nDSA callbacks to support both VLAN-unaware and VLAN-aware bridge modes.\n\nFor VLAN-unaware bridges, each bridge instance is assigned a dedicated\ninternal PVID via NETC_VLAN_UNAWARE_PVID(bridge.num), counting down\nfrom VID 4095. A VFT entry is created for this PVID with hardware MAC\nlearning and flood-on-miss forwarding enabled. The CPU port is included\nas a VFT member so frames can reach the host. The reserved VID range is\nblocked in port_vlan_add to prevent user-space conflicts.\n\nOnly one VLAN-aware bridge is supported at a time; this constraint is\nenforced in port_bridge_join and port_vlan_filtering. The per-port PVID\nis tracked in software and written to the BPDVR register whenever VLAN\nfiltering is active.\n\nWhen a port leaves the bridge, its dynamic FDB entries are flushed right\naway in port_bridge_leave(), without waiting for the ageing cycle. When\na link down event occurs on a port, netc_mac_link_down() will also clear\nthe port\u0027s dynamic FDB entries via netc_port_remove_dynamic_entries().\nNon-bridge ports have no dynamic FDB entries, so this call is always\nsafe. Additionally, .port_fast_age() callback is added to flush the\ndynamic FDB entries associated to a port.\n\nHost flood rules are removed from the ingress port filter table when a\nport joins a bridge to avoid bypassing FDB lookup and MAC learning.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-9-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "84b4a3b30abd226ec528985d7c3cb63a3376d098",
      "tree": "b0975033b63817e30b7dce3ea738a43132e5c627",
      "parents": [
        "8469b17310d1814b8e7d6fe2b4cc77a05a9da4f1"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:56 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:06 2026 -0700"
      },
      "message": "net: dsa: netc: add VLAN filter table and egress treatment management\n\nImplement the DSA .port_vlan_add and .port_vlan_del operations to enable\nVLAN-aware bridge offloading on the NETC switch.\n\nVLAN membership is maintained in the VLAN Filter Table (VFT). Adding the\nfirst port to a VLAN creates a new VFT entry with hardware MAC learning\nand flood-on-miss forwarding; subsequent ports update the existing\nentry\u0027s membership bitmap. Removing the last port deletes the entry.\n\nEgress tagging is handled through the Egress Treatment Table (ETT). Each\nVLAN is allocated a group of ETT entries, one per available port. Ports\nare assigned a sequential ett_offset during initialisation, used to\naddress each port\u0027s entry within the group. Untagged ports configure the\nETT to strip the outer VLAN tag; tagged ports pass frames through\nunmodified. Each ETT group is optionally paired with an Egress Counter\nTable (ECT) group for per-port frame counting, allocated on a best-effort\nbasis. When the egress rule of an ETT entry changes, the counter of the\ncorresponding ECT entry will be recounted to track the number of frames\nthat match the new egress rule.\n\nA software shadow list serialised by vft_lock tracks active VLAN state\nacross both port membership and egress tagging. VID 0 is used for single\nport mode and is ignored by both callbacks.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-8-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "8469b17310d1814b8e7d6fe2b4cc77a05a9da4f1",
      "tree": "470b914c5a545935c463918e68d4fb408b09a29a",
      "parents": [
        "1a58ae73dd743bba2895431ee99471d784175244"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:55 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:06 2026 -0700"
      },
      "message": "net: enetc: add helpers to set/clear table bitmap\n\nNTMP index tables require software to allocate and manage entry IDs.\nAdd two bitmap helper functions to facilitate this management:\n\nntmp_lookup_free_eid(): finds the first zero bit in the given bitmap,\nsets it to mark the entry as in-use, and returns the corresponding entry\nID. Returns NTMP_NULL_ENTRY_ID if no free entry is available.\n\nntmp_clear_eid_bitmap(): clears the bit associated with the given entry\nID in the bitmap to mark the entry as free. It is a no-op if the entry\nID is NTMP_NULL_ENTRY_ID.\n\nBoth functions are exported for use by other modules, such as the NETC\nswitch driver which needs to manage group index bitmaps for the Egress\nTreatment Table (ETT) and Egress Count Table (ECT).\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-7-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "1a58ae73dd743bba2895431ee99471d784175244",
      "tree": "faaf3a6d1661ac3d2d6537580bc489cd66d44525",
      "parents": [
        "d51f238a154aeb6cb76c70a0b0cb72ea99319870"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:54 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:06 2026 -0700"
      },
      "message": "net: dsa: netc: initialize the group bitmap of ETT and ECT\n\nThe Egress Treatment Table (ETT) and Egress Count Table (ECT) are both\nindex tables whose entry IDs are allocated by software. Every num_ports\nentries form a group, where each entry in the group corresponds to one\nport. To facilitate group allocation and management, initialize the group\nindex bitmaps for both tables based on hardware capabilities reported by\nETTCAPR and ECTCAPR registers.\n\nThe bitmap size per table is calculated as the total number of hardware\nentries divided by the number of available ports, which gives the number\nof groups available for software allocation. A set bit in the bitmap\nrepresents a group index that has been allocated.\n\nThese bitmaps will be used by subsequent patches that add VLAN support.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-6-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "d51f238a154aeb6cb76c70a0b0cb72ea99319870",
      "tree": "15eedc3d5fbbc8a22188a635269f6a18e60fca7e",
      "parents": [
        "3cc291a35939a3d59e50a1b2cc4845abd6bb1208"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:53 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:05 2026 -0700"
      },
      "message": "net: enetc: add \"Update\" operation to the egress count table\n\nThe egress count table is a static bounded index table, egress related\nstatistics are maintained in this table. The table is implemented as a\nlinear array of entries accessed using an index (0, 1, 2, ..., n) that\nuniquely identifies an entry within the array. Egress Counter Entry ID\n(EC_EID) is used as an index to an entry in this table. The EC_EID is\nspecified in the egress treatment table.\n\nEgress count table entries are always present and enabled. The table\nonly supports access via entry ID, which is assigned by the software.\nAnd it supports Update, Query and Query followed by Update operations.\nCurrently, only Update operation is supported.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-5-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "3cc291a35939a3d59e50a1b2cc4845abd6bb1208",
      "tree": "545186d56fb80d47cb78e0e201884b4e676cc6ab",
      "parents": [
        "c52b6702a9481dd7f05fb5f484cb6639f5ce57ee"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:52 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:05 2026 -0700"
      },
      "message": "net: enetc: add interfaces to manage egress treatment table\n\nEach entry in the egress treatment table contains the egress packet\nprocessing actions to be applied to a grouping or scope of packets\nexiting on a particular egress port of the switch. A scope of packets,\nfor example, could be the packets exiting a particular VLAN, matching\na particular 802.1Q bridge forwarding entry or belonging to a stream\nidentified at ingress. The egress treatment table is implemented as a\nlinear array of entries accessed using an index (0,1, 2, ..., n) that\nuniquely identifies an entry within the array.\n\nThe egress treatment table only supports access vid entry ID, which is\nassigned by the software. It supports Add, Update, Delete and Query\noperations. Note that only Query operation is not supported yet.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-4-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "c52b6702a9481dd7f05fb5f484cb6639f5ce57ee",
      "tree": "cb89288a4ee615d95c29717c41a57577e58daf4e",
      "parents": [
        "ca394837dfddba669e0021b8be7f1e68affb206b"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:51 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:05 2026 -0700"
      },
      "message": "net: enetc: add \"Update\" and \"Delete\" operations to VLAN filter table\n\nAdd two interfaces to manage entries in the VLAN filter table:\n\nntmp_vft_update_entry(): Update the configuration element data of the\nspecified VLAN filter entry based on the given VLAN ID. It uses the\nexact key access method to locate the entry.\n\nntmp_vft_delete_entry(): Delete the VLAN filter entry corresponding to\nthe specified VLAN ID. It also uses the exact key access method to\nidentify the target entry.\n\nIn addition, introduce struct vft_req_qd to describe the request data\nbuffer format for Query and Delete actions of the VLAN filter table,\nwhich contains a common request data header and a VLAN access key.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-3-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "ca394837dfddba669e0021b8be7f1e68affb206b",
      "tree": "933acaad88a5fc738cb73d2932902f4e88d60d1c",
      "parents": [
        "3b165c2a29cfb6453f26e1ac833ca6afd28d28cf"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "wei.fang@nxp.com",
        "time": "Thu Jun 11 10:14:50 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:32:05 2026 -0700"
      },
      "message": "net: enetc: add interfaces to manage dynamic FDB entries\n\nAdd three interfaces to manage dynamic entries in the FDB table:\n\nntmp_fdbt_update_activity_element(): Update the activity element of all\ndynamic FDB entries. For each entry, if its activity flag is not set,\nwhich means no packet has matched this entry since the last update, the\nactivity counter is incremented. Otherwise, both the activity flag and\nactivity counter are reset. The activity counter is used to track how\nlong an FDB entry has been inactive, which is useful for implementing\nan ageing mechanism.\n\nntmp_fdbt_delete_ageing_entries(): Delete all dynamic FDB entries whose\nactivity flag is not set and whose activity counter is greater than or\nequal to the specified threshold. This is used to remove stale entries\nthat have been inactive for too long.\n\nntmp_fdbt_delete_port_dynamic_entries(): Delete all dynamic FDB entries\nassociated with the specified switch port. This is typically called when\na port goes down or is removed from a bridge.\n\nSigned-off-by: Wei Fang \u003cwei.fang@nxp.com\u003e\nLink: https://patch.msgid.link/20260611021458.2629145-2-wei.fang@oss.nxp.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "3b165c2a29cfb6453f26e1ac833ca6afd28d28cf",
      "tree": "df80f91277fb0e01d691b7f4e12e8359d8b40eff",
      "parents": [
        "86bbdbac174231c6a1da839e45d656acae8b74f9"
      ],
      "author": {
        "name": "Minxi Hou",
        "email": "houminxi@gmail.com",
        "time": "Fri Jun 12 21:05:03 2026 +0800"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:16:06 2026 -0700"
      },
      "message": "selftests/net/openvswitch: add SET action test\n\nAdd test_action_set exercising OVS_ACTION_ATTR_SET with an ipv4 dst\nrewrite. The test verifies the SET action in three steps: first\nconfirm normal forwarding, then apply set(ipv4(dst\u003d10.0.0.99)) to\nrewrite the destination to an address nobody owns and verify ping\nfails, then restore normal forwarding and verify connectivity\nrecovers.\n\nSigned-off-by: Minxi Hou \u003chouminxi@gmail.com\u003e\nReviewed-by: Aaron Conole \u003caconole@redhat.com\u003e\nLink: https://patch.msgid.link/20260612130503.311240-1-houminxi@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "86bbdbac174231c6a1da839e45d656acae8b74f9",
      "tree": "dc76fd2765e7d98288563b983e4bd51989a333dd",
      "parents": [
        "eaf398831e35dbda6b52e46cac36bdfbcb7cd2b5",
        "58b29bdf6186a8c3f2d725619c0b17cf602ac4e0"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:14:50 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:14:50 2026 -0700"
      },
      "message": "Merge branch \u0027net-sfp-extend-smbus-support\u0027\n\nJonas Jelonek says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnet: sfp: extend SMBus support\n\nToday, the SFP driver only drives I2C adapters that advertise full\nI2C_FUNC_I2C, or SMBus-only adapters via single-byte transfers (with\nhwmon disabled). Several SoCs ship I2C/SMBus-only controllers that\nsupport more than just byte access -- e.g. word and I2C block -- and\nhave SFP cages wired to them. Today, those adapters either work\npoorly or not at all.\n\nThis series teaches the SFP driver to use the larger SMBus access\nmodes when the adapter advertises them, and along the way starts\nhonoring i2c_adapter quirks on read/write length so adapters that\ncap below the SFP block size are handled correctly. Patch 1 is a\nsmall prep doing only the quirks handling; patch 2 extends the\nSMBus path itself.\n\nCapability matrix supported by patch 2:\n  - BYTE only:                   single-byte access (unchanged).\n  - BYTE + WORD:                 word for \u003e\u003d2-byte chunks, byte tail.\n  - I2C_BLOCK present:           block as the universal transport.\n  - WORD only (no BYTE/BLOCK):   accepted with WARN_ONCE; works for\n                                 even-length transfers, odd-length\n                                 transfers will error at xfer time.\n\nAdapters with asymmetric R/W capabilities (e.g. only READ_I2C_BLOCK\nwithout WRITE_I2C_BLOCK) remain functionally correct but use the\nworse-supported direction\u0027s max for both directions, since\ni2c_max_block_size is a single field. No mainline I2C driver was\nseen advertising such asymmetry; per-direction sizes can be added\nlater if needed.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260614133418.2068201-1-jelonek.jonas@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "58b29bdf6186a8c3f2d725619c0b17cf602ac4e0",
      "tree": "dc76fd2765e7d98288563b983e4bd51989a333dd",
      "parents": [
        "f2a138abfb719a3bfd370ca79f00055ec81e4f59"
      ],
      "author": {
        "name": "Jonas Jelonek",
        "email": "jelonek.jonas@gmail.com",
        "time": "Sun Jun 14 13:34:18 2026 +0000"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:14:48 2026 -0700"
      },
      "message": "net: sfp: extend SMBus support\n\nCommit 7662abf4db94 (\"net: phy: sfp: Add support for SMBus module access\")\nadded SMBus access for SFP modules, but limited it to single-byte\ntransfers. As a side effect, hwmon is disabled (16-bit reads cannot be\nguaranteed atomic) and a warning is printed.\n\nMany SMBus-only I2C controllers in the wild support more than just\nbyte access, and SFP cages are often wired to such controllers\nrather than to a full-featured I2C controller -- e.g. the SMBus\ncontrollers in the Realtek longan and mango SoCs, which advertise\nword access and I2C block reads. Today, they cannot drive an SFP at\nall without falling back to the byte-only path.\n\nExtend sfp_smbus_read()/sfp_smbus_write() so that, in addition to\nthe existing byte access, they also use SMBus word access and SMBus\nI2C block access whenever the adapter advertises them. Both\ndirections are handled in a single read and a single write helper\nthat pick the largest supported transfer per chunk and fall back as\nneeded.\n\nI2C-block is preferred unconditionally when available: the protocol\ncarries any length 1..32, so it can serve every chunk -- including\nthe 1- and 2-byte tails -- without help from word or byte access.\nNote that this requires I2C_FUNC_SMBUS_I2C_BLOCK, which reads a\ncaller-specified number of bytes. This deviates from the official\nSMBus Block Read (length is supplied by the slave) but is widely\nsupported by Linux I2C controllers/drivers.\n\nCapability matrix this implementation supports:\n\n  - BYTE only:                  works (unchanged behaviour); 1-byte\n                                xfers, hwmon disabled.\n  - BYTE + WORD:                word for \u003e\u003d2-byte chunks, byte for\n                                trailing odd byte.\n  - I2C_BLOCK present (with or\n    without BYTE/WORD):         block as the universal transport for\n                                every chunk.\n  - WORD only (no BYTE/BLOCK):  accepted with WARN_ONCE. Even-length\n                                transfers work; odd-length transfers\n                                (e.g. the 3-byte cotsworks fixup\n                                write) hit the BYTE branch which the\n                                adapter does not implement, so the\n                                xfer returns an error and the\n                                operation is aborted. No mainline\n                                I2C driver was found to advertise\n                                WORD without BYTE; the warning lets\n                                us learn about it if it ever shows\n                                up.\n\nAdapters with asymmetric R/W capabilities (e.g. only READ_I2C_BLOCK\nbut not WRITE_I2C_BLOCK) remain functionally correct -- the\nper-iteration fallback uses the direction-specific bits -- but the\nshared i2c_max_block_size is sized by the all-bits-set check, so a\ntransfer in the better-supported direction is not upgraded. None of\nthe mainline I2C bus drivers surveyed during review advertise such\nasymmetry; promoting i2c_max_block_size to per-direction sizes can\nbe revisited if needed.\n\nSigned-off-by: Jonas Jelonek \u003cjelonek.jonas@gmail.com\u003e\nReviewed-by: Maxime Chevallier \u003cmaxime.chevallier@bootlin.com\u003e\nLink: https://patch.msgid.link/20260614133418.2068201-3-jelonek.jonas@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f2a138abfb719a3bfd370ca79f00055ec81e4f59",
      "tree": "e45b70d3295d88cf32229b3d32f2c6e70e4a0d2c",
      "parents": [
        "eaf398831e35dbda6b52e46cac36bdfbcb7cd2b5"
      ],
      "author": {
        "name": "Jonas Jelonek",
        "email": "jelonek.jonas@gmail.com",
        "time": "Sun Jun 14 13:34:17 2026 +0000"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:14:48 2026 -0700"
      },
      "message": "net: sfp: apply I2C adapter quirks to limit block size\n\nThe SFP driver assumes all I2C adapters support reading and writing the\npre-defined block size SFP_EEPROM_BLOCK_SIZE of 16 bytes. This constant\nwas probably chosen based on good guesses and known limitations of a\nrange of I2C adapters and SFP modules.\n\nHowever, I2C adapters may even support less and usually need to specify\nthis via I2C quirks. Theoretically, such an adapter may provide full\nfunctionality but only support a read and write length of e.g. 8 bytes.\nCurrently, the SFP driver doesn\u0027t account for that.\n\nAdd handling for I2C quirks in SFP I2C configuration taking the fields\nmax_read_len and max_write_len in struct i2c_adapter_quirks into account\nto further limit the maximum block size if needed.\n\nSigned-off-by: Jonas Jelonek \u003cjelonek.jonas@gmail.com\u003e\nReviewed-by: Maxime Chevallier \u003cmaxime.chevallier@bootlin.com\u003e\nLink: https://patch.msgid.link/20260614133418.2068201-2-jelonek.jonas@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "eaf398831e35dbda6b52e46cac36bdfbcb7cd2b5",
      "tree": "bc01752b24503b679db18edc863e7b2f8f9795be",
      "parents": [
        "b260c97930bc62713d246670677ade2190f0ff87",
        "2354e975932dabb06fad239f07a3b68fd1809737"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:09:56 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 14:09:57 2026 -0700"
      },
      "message": "Merge tag \u0027nf-next-26-06-14\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next\n\nPablo Neira Ayuso says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nNetfilter/IPVS updates for net-next\n\nThe following patchset contains Netfilter/IPVS updates for net-next.\nMore specifically, this contains conncount rework to address AI related\nreports, assorted Netfiter updates and two small incremental updates on\nIPVS:\n\n1) Replace old obsolete workqueues (system_wq, system_unbound_wq)\n   in IPVS, from Marco Crivellari.\n\n2) Replace WARN_ON{_ONCE} by DEBUG_NET_WARN_ON_ONCE in nf_tables.\n   In the recent years, reporters say that the use of WARN_ON{_ONCE}\n   in conjunction with panic_on_warn\u003d1 results in DoS. Let\u0027s replace\n   it by DEBUG_NET_WARN_ON_ONCE so this is only exercised by test\n   infrastructure and fuzzers, while also providing context to AI\n   agents. From Fernando F. Mancera.\n\nFive patches from Florian Westphal to address AI reports in the conncount\ninfrastructures:\n\n3) Fix missing rcu read lock section when calling\n   __ovs_ct_limit_get_zone_limit().\n\n4) Add a dedicate lock per rbtree tree, this increases memory\n   usage but it should improve scalability.\n\n5) Add a helper function to find the rbtree node, no functional\n   changes are intented.\n\n6) Add sequence counter to detect concurrent tree modifications\n   and retry lookups.\n\n7) Add locks to GC conncount walk and address other nitpicks.\n\nThen, several assorted updates:\n\n8) Defensive Tree-wide addition of NULL checks for ct extensions.\n\n9) Bail out if flowtable bypass cannot be fully set up from the\n   flow offload expression, instead of lazy building a likely\n   incomplete one.\n\n10) Fix documentation for the new conn_max sysctl toggle in IPVS.\n\n11) Add nf_dev_xmit_recursion*() helpers and use them, to address\n    recent AI reports.\n\n* tag \u0027nf-next-26-06-14\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next:\n  netfilter: nf_dup_netdev: add nf_dev_xmit_recursion*() helpers and use them\n  ipvs: fix doc syntax for conn_max sysctl\n  netfilter: flowtable: bail out if forward path cannot be discovered\n  netfilter: conntrack: check NULL when retrieving ct extension\n  netfilter: nf_conncount: gc and rcu fixes\n  netfilter: nf_conncount: add sequence counter to detect tree modifications\n  netfilter: nf_conncount: split count_tree_node rbtree walk into helper\n  netfilter: nf_conncount: use per nf_conncount_data spinlocks\n  netfilter: nf_conncount: callers must hold rcu read lock\n  netfilter: nf_tables: use DEBUG_NET_WARN_ON_ONCE in packet and control paths\n  ipvs: Replace use of system_unbound_wq with system_dfl_long_wq\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260614114605.474783-1-pablo@netfilter.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f3d64e53998aad11abceeeea1d7fe4e563770598",
      "tree": "20ee04df1aa1351790f7d744a6e932177a77e1b7",
      "parents": [
        "2bf43d0e2e6a27d52a7d624e2d6b9116972e8a22"
      ],
      "author": {
        "name": "Jesse Brandeburg",
        "email": "jbrandeburg@cloudflare.com",
        "time": "Fri Jun 12 15:47:21 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:59:04 2026 -0700"
      },
      "message": "mailmap: add entry for Jesse Brandeburg\n\nMy Intel email address is no longer used, redirect it to my kernel.org\naddress.\n\nSigned-off-by: Jesse Brandeburg \u003cjbrandeburg@cloudflare.com\u003e\nLink: https://patch.msgid.link/20260612224727.141614-1-jbrandeb@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "b260c97930bc62713d246670677ade2190f0ff87",
      "tree": "a6aab04094b9c5cc8e4943e56e2350284ca59ce6",
      "parents": [
        "0399e685927a4d1bc310771735b0c8780ddf1cab",
        "18f65355e112dfc87d5e2e8a299119afd2e65e7e"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:58:20 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:58:20 2026 -0700"
      },
      "message": "Merge branch \u0027netdev-expose-page-pool-order-via-netlink\u0027\n\nDragos Tatulea says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nnetdev: expose page pool order via netlink\n\nThis small series exposes io_uring\u0027s high order page configuration\nvia the page_pool netlink interface and updates the appropriate\nselftest to check this value.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260612211709.1456966-2-dtatulea@nvidia.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "18f65355e112dfc87d5e2e8a299119afd2e65e7e",
      "tree": "a6aab04094b9c5cc8e4943e56e2350284ca59ce6",
      "parents": [
        "5c4adb7fb46fac348197c5a15c676a066dd1f88e"
      ],
      "author": {
        "name": "Dragos Tatulea",
        "email": "dtatulea@nvidia.com",
        "time": "Sat Jun 13 00:17:04 2026 +0300"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:58:18 2026 -0700"
      },
      "message": "io_uring/zcrx: selftests: verify rx_buf_len for large chunks\n\nCheck the newly added rx_buf_len page_pool field for io_uring\nin the existing large-chunks test after the receiver is up.\n\nSigned-off-by: Dragos Tatulea \u003cdtatulea@nvidia.com\u003e\nLink: https://patch.msgid.link/20260612211709.1456966-4-dtatulea@nvidia.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "5c4adb7fb46fac348197c5a15c676a066dd1f88e",
      "tree": "7c79ac6b8ec31bd44b37b75269a597afe83a9add",
      "parents": [
        "0399e685927a4d1bc310771735b0c8780ddf1cab"
      ],
      "author": {
        "name": "Dragos Tatulea",
        "email": "dtatulea@nvidia.com",
        "time": "Sat Jun 13 00:17:03 2026 +0300"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:58:18 2026 -0700"
      },
      "message": "netdev: expose io_uring rx_page_order order via netlink\n\nThis adds observability for the io_uring zcrx rx-buf-len configuration.\n\nSigned-off-by: Dragos Tatulea \u003cdtatulea@nvidia.com\u003e\nReviewed-by: Yael Chemla \u003cychemla@nvidia.com\u003e\nReviewed-by: Tariq Toukan \u003ctariqt@nvidia.com\u003e\nAcked-by: Pavel Begunkov \u003casml.silence@gmail.com\u003e\nLink: https://patch.msgid.link/20260612211709.1456966-3-dtatulea@nvidia.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "0399e685927a4d1bc310771735b0c8780ddf1cab",
      "tree": "0e78932319eae663e0435d167b664982077ceb4b",
      "parents": [
        "8ac44d24c3a148c4177bd3ad790c377279f4674f",
        "9361bff6bdb743dabe69d71fa1b8be69575d5b0c"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:52:03 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:52:03 2026 -0700"
      },
      "message": "Merge branch \u0027selftests-vsock-improve-vng-version-and-quirk-handling\u0027\n\nBobby Eshleman says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nselftests/vsock: improve vng version and quirk handling\n\nAs vng has continued updating, there have been two things in our\nselftests that have been affected. One is that newer versions always\nemit the vng version warning, and two is that we have a workaround that\nis not needed in newer versions.\n\nThis series just updates the version handling to allow all newer\nversions without warning and version-gates the workaround to only those\nversions that don\u0027t have the commit that fixed the root cause.\n\nAdditionally, we add function for comparing major.minor versions which\nis used in both patches.\n-\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260612-vsock-test-update-v1-0-7d7eeed3ac8f@meta.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "9361bff6bdb743dabe69d71fa1b8be69575d5b0c",
      "tree": "0e78932319eae663e0435d167b664982077ceb4b",
      "parents": [
        "197503d5ac82a911db3c90e973c1c2c6ddb6020d"
      ],
      "author": {
        "name": "Bobby Eshleman",
        "email": "bobbyeshleman@meta.com",
        "time": "Fri Jun 12 12:08:42 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:52:01 2026 -0700"
      },
      "message": "selftests/vsock: skip vng setsid workaround on \u003e\u003d 1.41\n\nvirtme-ng 1.41 ships the upstream fix for the SIGTTOU hang\n(https://github.com/arighi/virtme-ng/pull/453), so the setsid wrapper in\nvng_dry_run() is no longer needed there. Gate the workaround on the vng\nversion: setsid is used for vng \u003c 1.41, and vng is invoked directly on\n\u003e\u003d 1.41.\n\nSigned-off-by: Bobby Eshleman \u003cbobbyeshleman@meta.com\u003e\nLink: https://patch.msgid.link/20260612-vsock-test-update-v1-2-7d7eeed3ac8f@meta.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "197503d5ac82a911db3c90e973c1c2c6ddb6020d",
      "tree": "23b956cb8ed32d6b8e428fdbcdf00c3a54e09429",
      "parents": [
        "8ac44d24c3a148c4177bd3ad790c377279f4674f"
      ],
      "author": {
        "name": "Bobby Eshleman",
        "email": "bobbyeshleman@meta.com",
        "time": "Fri Jun 12 12:08:41 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:52:01 2026 -0700"
      },
      "message": "selftests/vsock: accept vng 1.33 or \u003e\u003d 1.36\n\nThe current vng version check uses a discrete allowlist of \"1.33\",\n\"1.36\", and \"1.37\", which forces a script update on every new release\neven though all post-1.36 releases work.\n\nReplace the discrete list with: \"1.33\", or any version \u003e\u003d 1.36. 1.34\nand 1.35 are skipped because they were not tested. Add a version_lt()\nhelper that compares MAJOR.MINOR numerically, so the check reads as a\nstraightforward version comparison.\n\nSigned-off-by: Bobby Eshleman \u003cbobbyeshleman@meta.com\u003e\nLink: https://patch.msgid.link/20260612-vsock-test-update-v1-1-7d7eeed3ac8f@meta.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "2bf43d0e2e6a27d52a7d624e2d6b9116972e8a22",
      "tree": "a57d8226510288943d3caf939e624bf5f5f356c1",
      "parents": [
        "f4c3d89fc986b0da196ddfc6cfe0ea5d5d08bec6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Jun 12 16:25:17 2026 +0000"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:51:04 2026 -0700"
      },
      "message": "tcp: ipv6: clamp default adverting MSS to avoid GSO_BY_FRAGS (0xFFFF)\n\nWhen MTU is large, ip6_default_advmss() can return IPV6_MAXPLEN (65535).\nThis is interpreted by TCP as mss_clamp, allowing the MSS to reach 65535.\n\nHowever, 0xFFFF is also used as a magic value GSO_BY_FRAGS in the kernel.\nIf a TCP packet with gso_size\u003d0xFFFF is passed to skb_segment(), it will\nbe mistakenly treated as GSO_BY_FRAGS, leading to a NULL pointer\ndereference because local TCP packets do not use frag_list.\n\nFix this by returning min(IPV6_MAXPLEN, GSO_BY_FRAGS - 1) (65534) from\nip6_default_advmss() when MTU is large.\n\nAlso update the stale comment in ip6_default_advmss() which suggested\nthat IPV6_MAXPLEN is returned to mean \"any MSS\".\n\nFixes: 3953c46c3ac7 (\"sk_buff: allow segmenting based on frag sizes\")\nReported-by: syzbot+ebdb22d461c904fc3cb2@syzkaller.appspotmail.com\nCloses: https://lore.kernel.org/netdev/6a2c3193.8812e0fc.3c3fa4.0001.GAE@google.com/T/#u\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nReviewed-by: Kuniyuki Iwashima \u003ckuniyu@google.com\u003e\nLink: https://patch.msgid.link/20260612162517.83394-1-edumazet@google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "f4c3d89fc986b0da196ddfc6cfe0ea5d5d08bec6",
      "tree": "a19812911428662103dcf8175face6f83be2a3ca",
      "parents": [
        "62821d481975d830ed67f30d0cf2b2036bf3b5ca"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Jun 12 13:59:49 2026 +0000"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:50:29 2026 -0700"
      },
      "message": "tipc: fix UAF in tipc_l2_send_msg()\n\nSyzbot reported a slab-use-after-free in ipvlan_hard_header() when\ncalled from tipc_l2_send_msg().\n\nThe root cause is that tipc_disable_l2_media() calls synchronize_net()\nwhile b-\u003emedia_ptr is still valid. This allows concurrent RCU readers\nto obtain the device pointer after synchronize_net() has finished.\nThe pointer is cleared later in bearer_disable(), but without any\nsubsequent synchronization, allowing the device to be freed while\nstill in use by readers.\n\nFix this by clearing b-\u003emedia_ptr in tipc_disable_l2_media() before\ncalling synchronize_net().\n\nThis is safe to do now because the call order in bearer_disable()\nwas reversed in 0d051bf93c06 (\"tipc: make bearer packet filtering generic\")\nto call tipc_node_delete_links() (which needs the pointer) before\ndisable_media().\n\nFixes: 282b3a056225 (\"tipc: send out RESET immediately when link goes down\")\nhttps: //lore.kernel.org/netdev/6a2c1007.428ffe26.258b27.015d.GAE@google.com/T/#u\nReported-by: syzbot+64ec81389cbad56a8c35@syzkaller.appspotmail.com\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Jon Maloy \u003cjmaloy@redhat.com\u003e\nReviewed-by: Tung Nguyen \u003ctung.quang.nguyen@est.tech\u003e\nLink: https://patch.msgid.link/20260612135949.4010482-1-edumazet@google.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    },
    {
      "commit": "62821d481975d830ed67f30d0cf2b2036bf3b5ca",
      "tree": "0f79b393423c163d1706b820cbdb01ef9ab288f9",
      "parents": [
        "47186409c092cd7dd70350999186c700233e854d",
        "0b352f04b9be2c83c0240aa6dae7257fefa90464"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:47:20 2026 -0700"
      },
      "committer": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Mon Jun 15 12:47:21 2026 -0700"
      },
      "message": "Merge branch \u0027octeontx2-quiesce-stale-mailbox-irq-state-before-request_irq\u0027\n\nRunyu Xiao says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nocteontx2: quiesce stale mailbox IRQ state before request_irq()\n\nBoth OTX2 mailbox registration paths currently install their IRQ\nhandlers before clearing stale local mailbox interrupt state, even\nthough the code comments already say that the clear is needed first to\navoid spurious interrupts.\n\nThis issue was found by our static analysis tool and manually audited on\nLinux v6.18.21. Directed QEMU no-device validation further showed that\nthe real PF and VF mailbox handlers are already reachable in that\npre-clear window and can touch the same mailbox and workqueue carrier\nbefore local quiesce has completed.\n\nThis series keeps the change minimal:\n\n- clear stale mailbox interrupt state before request_irq()\n- keep interrupt enabling after the handler is installed\n\nThat closes the early-IRQ window without introducing a new\nenable-before-handler window.\n\nPatch 1 fixes the PF mailbox registration path.\nPatch 2 fixes the VF mailbox registration path.\n\nBuild-tested by compiling otx2_pf.o and otx2_vf.o.\n\nNo OTX2 hardware was available for end-to-end runtime testing.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260611160014.3202224-1-runyu.xiao@seu.edu.cn\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n"
    }
  ],
  "next": "0b352f04b9be2c83c0240aa6dae7257fefa90464"
}
