linuxHeaders: 6.5 -> 6.6

This commit is contained in:
Sergei Trofimovich 2023-10-30 13:24:01 +00:00
parent fabf4a67d3
commit f79d2b7570
2 changed files with 2 additions and 36 deletions

View File

@ -111,18 +111,15 @@ let
in {
inherit makeLinuxHeaders;
linuxHeaders = let version = "6.5"; in
linuxHeaders = let version = "6.6"; in
makeLinuxHeaders {
inherit version;
src = fetchurl {
url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz";
hash = "sha256-eldLvCCALqdrUsp/rwcmf3IEXoYbGJFcUnKpjCer+IQ=";
hash = "sha256-2SagbGPdisffP4buH/ws4qO4Gi0WhITna1s4mrqOVtA=";
};
patches = [
./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
# Fix regression turning `struct sockaddr_ll` flexible size.
./revert-af_packet-flex.patch
];
};
}

View File

@ -1,31 +0,0 @@
Revert commit https://github.com/torvalds/linux/commit/a0ade8404c3bc2bf2631cb0f20d372eed22d9d96
The change caused API regression by turning fixed size struct to
flexible size struct. It was an unintentional change, broke `udp2raw`:
https://github.com/NixOS/nixpkgs/pull/252587#issuecomment-1744427473
--- a/include/uapi/linux/if_packet.h
+++ b/include/uapi/linux/if_packet.h
@@ -18,11 +18,7 @@ struct sockaddr_ll {
unsigned short sll_hatype;
unsigned char sll_pkttype;
unsigned char sll_halen;
- union {
- unsigned char sll_addr[8];
- /* Actual length is in sll_halen. */
- __DECLARE_FLEX_ARRAY(unsigned char, sll_addr_flex);
- };
+ unsigned char sll_addr[8];
};
/* Packet types */
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -3607,7 +3607,7 @@ static int packet_getname(struct socket *sock, struct sockaddr *uaddr,
if (dev) {
sll->sll_hatype = dev->type;
sll->sll_halen = dev->addr_len;
- memcpy(sll->sll_addr_flex, dev->dev_addr, dev->addr_len);
+ memcpy(sll->sll_addr, dev->dev_addr, dev->addr_len);
} else {
sll->sll_hatype = 0; /* Bad: we have no ARPHRD_UNSPEC */
sll->sll_halen = 0;