rtnl: allocate more attr tables on the heap
authorJakub Kicinski <kuba@kernel.org>
Fri, 29 Apr 2022 23:55:06 +0000 (16:55 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Mon, 2 May 2022 13:14:20 +0000 (15:14 +0200)
commitc92bf26ccebc8501863b38c4a4f65b8fef28ce5e
tree3ae147a26bf9768b022f49582df91ba2ee9cc43d
parentd7ab15ab34a491b3837595b629e79323a1922fc8
rtnl: allocate more attr tables on the heap

Commit a293974590cf ("rtnetlink: avoid frame size warning in rtnl_newlink()")
moved to allocating the largest attribute array of rtnl_newlink()
on the heap. Kalle reports the stack has grown above 1k again:

  net/core/rtnetlink.c:3557:1: error: the frame size of 1104 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]

Move more attrs to the heap, wrap them in a struct.
Don't bother with linkinfo, it's referenced a lot and we take
its size so it's awkward to move, plus it's small (6 elements).

Reported-by: Kalle Valo <kvalo@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Tested-by: Kalle Valo <kvalo@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/core/rtnetlink.c