)]}'
{
  "commit": "513e23857a3a64fa73a1deb36a385eecd4ad7690",
  "tree": "0d0789ca9e6c5b4ef999c134bdb122e6c3dda182",
  "parents": [
    "089e58805c452e52179482b1025a8e309a57f801"
  ],
  "author": {
    "name": "Willem de Bruijn",
    "email": "willemb@google.com",
    "time": "Wed Oct 07 13:57:30 2026 -0400"
  },
  "committer": {
    "name": "Jakub Kicinski",
    "email": "kuba@kernel.org",
    "time": "Thu Oct 08 10:59:20 2026 -0700"
  },
  "message": "net/packet: call packet_parse_headers after virtio_net_hdr_to_skb\n\nSOCK_RAW packet sockets incorrectly drop VLAN-tagged GSO packets\nwithout VIRTIO_NET_HDR_F_NEEDS_CSUM.\n\npacket_parse_headers() sets skb-\u003eprotocol to VLAN but advances\nskb-\u003enetwork_header past the VLAN tags. virtio_net_hdr_to_skb()\nthen flow dissects these packets, which parses the network header as a\nVLAN tag, and fails.\n\nCall packet_parse_headers() after virtio_net_hdr_to_skb() instead.\n\nThis matches tun_get_user() and tap_get_user() and thus simplifies\noverall complexity.\n\nCommit 01fdecc0480d (\"net: packet: fix wrong transport_header when\nsending VLAN-tagged frame\") fixed the same issue for the transport\nheader probe in packet_parse_headers(). That probe is now skipped if\nvirtio_net_hdr_to_skb() already set the transport header, avoiding a\nredundant dissection.\n\nImplementation details:\n- Do not set skb-\u003eprotocol to the RX wildcard ETH_P_ALL. SOCK_RAW then\n  derives it from the link layer header, as before. SOCK_DGRAM now\n  leaves it 0, or derives it from gso_type for GSO with NEEDS_CSUM.\n- Keep virtio_net_hdr_set_proto() last, so that the link layer protocol\n  takes priority over gso_type.\n\nReported-by: Junnan Zhang \u003czhangjn_dev@163.com\u003e\nCloses: https://lore.kernel.org/netdev/20260821085722.24036-1-zhangjn_dev@163.com/\nFixes: dfed913e8b55 (\"net/af_packet: add VLAN support for AF_PACKET SOCK_RAW GSO\")\nSigned-off-by: Willem de Bruijn \u003cwillemb@google.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nLink: https://patch.msgid.link/20261007175816.3138556-1-willemdebruijn.kernel@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6ff16eef24f4f891ed2fc0d6e11e82aff6a2b057",
      "old_mode": 33188,
      "old_path": "net/packet/af_packet.c",
      "new_id": "52ae3d875e971b44e3c8054dd22971c1622cac45",
      "new_mode": 33188,
      "new_path": "net/packet/af_packet.c"
    }
  ]
}
