[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170120.114455.431685285744854397.davem@davemloft.net>
Date: Fri, 20 Jan 2017 11:44:55 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: arnd@...db.de
Cc: Yuval.Mintz@...ium.com, Ariel.Elior@...ium.com,
everest-linux-l2@...ium.com, Ram.Amrani@...ium.com,
weiyongjun1@...wei.com, hare@...e.de, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/3] qed: avoid possible stack overflow in
qed_ll2_acquire_connection
From: Arnd Bergmann <arnd@...db.de>
Date: Wed, 18 Jan 2017 15:52:52 +0100
> struct qed_ll2_info is rather large, so putting it on the stack
> can cause an overflow, as this warning tries to tell us:
>
> drivers/net/ethernet/qlogic/qed/qed_ll2.c: In function 'qed_ll2_start':
> drivers/net/ethernet/qlogic/qed/qed_ll2.c:2159:1: error: the frame size of 1056 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
>
> qed_ll2_start_ooo() already uses a dynamic allocation for the structure
> to work around that problem, and we could do the same in qed_ll2_start()
> as well as qed_roce_ll2_start(), but since the structure is only
> used to pass a couple of initialization values here, it seems nicer
> to replace it with a different structure.
>
> Lacking any idea for better naming, I'm adding 'struct qed_ll2_conn',
> which now contains all the initialization data, and this now simply
> gets copied into struct qed_ll2_info rather than assigning all members
> one by one.
>
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
Applied.
Powered by blists - more mailing lists