Message ID | 20211111205916.37899-2-tadeusz.struk@linaro.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 86c3a3e964d910a62eeb277d60b2a60ebefa9feb |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tipc: use consistent GFP flags | expand |
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Thu, 11 Nov 2021 12:59:16 -0800 you wrote: > Some functions, like tipc_crypto_start use inconsisten GFP flags > when allocating memory. The mentioned function use GFP_ATOMIC to > to alloc a crypto instance, and then calls alloc_ordered_workqueue() > which allocates memory with GFP_KERNEL. tipc_aead_init() function > even uses GFP_KERNEL and GFP_ATOMIC interchangeably. > No doc comment specifies what context a function is designed to > work in, but the flags should at least be consistent within a function. > > [...] Here is the summary with links: - tipc: use consistent GFP flags https://git.kernel.org/netdev/net/c/86c3a3e964d9 You are awesome, thank you!
On 11/15/21 05:00, patchwork-bot+netdevbpf@kernel.org wrote: > This patch was applied to netdev/net.git (master) > by David S. Miller<davem@davemloft.net>: > > On Thu, 11 Nov 2021 12:59:16 -0800 you wrote: >> Some functions, like tipc_crypto_start use inconsisten GFP flags >> when allocating memory. The mentioned function use GFP_ATOMIC to >> to alloc a crypto instance, and then calls alloc_ordered_workqueue() >> which allocates memory with GFP_KERNEL. tipc_aead_init() function >> even uses GFP_KERNEL and GFP_ATOMIC interchangeably. >> No doc comment specifies what context a function is designed to >> work in, but the flags should at least be consistent within a function. >> >> [...] > Here is the summary with links: > - tipc: use consistent GFP flags > https://git.kernel.org/netdev/net/c/86c3a3e964d9 > > You are awesome, thank you! Thanks, you are awesome too! ;) Any feedback about the patch: [PATCH v2] tipc: check for null after calling kmemdup
diff --git a/net/tipc/crypto.c b/net/tipc/crypto.c index 988a343f9fd5..a59c4eece5db 100644 --- a/net/tipc/crypto.c +++ b/net/tipc/crypto.c @@ -524,7 +524,7 @@ static int tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey, return -EEXIST; /* Allocate a new AEAD */ - tmp = kzalloc(sizeof(*tmp), GFP_ATOMIC); + tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); if (unlikely(!tmp)) return -ENOMEM; @@ -1475,7 +1475,7 @@ int tipc_crypto_start(struct tipc_crypto **crypto, struct net *net, return -EEXIST; /* Allocate crypto */ - c = kzalloc(sizeof(*c), GFP_ATOMIC); + c = kzalloc(sizeof(*c), GFP_KERNEL); if (!c) return -ENOMEM; @@ -1489,7 +1489,7 @@ int tipc_crypto_start(struct tipc_crypto **crypto, struct net *net, } /* Allocate statistic structure */ - c->stats = alloc_percpu_gfp(struct tipc_crypto_stats, GFP_ATOMIC); + c->stats = alloc_percpu(struct tipc_crypto_stats); if (!c->stats) { if (c->wq) destroy_workqueue(c->wq); @@ -2462,7 +2462,7 @@ static void tipc_crypto_work_tx(struct work_struct *work) } /* Lets duplicate it first */ - skey = kmemdup(aead->key, tipc_aead_key_size(aead->key), GFP_ATOMIC); + skey = kmemdup(aead->key, tipc_aead_key_size(aead->key), GFP_KERNEL); rcu_read_unlock(); /* Now, generate new key, initiate & distribute it */
Some functions, like tipc_crypto_start use inconsisten GFP flags when allocating memory. The mentioned function use GFP_ATOMIC to to alloc a crypto instance, and then calls alloc_ordered_workqueue() which allocates memory with GFP_KERNEL. tipc_aead_init() function even uses GFP_KERNEL and GFP_ATOMIC interchangeably. No doc comment specifies what context a function is designed to work in, but the flags should at least be consistent within a function. Cc: Jon Maloy <jmaloy@redhat.com> Cc: Ying Xue <ying.xue@windriver.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Jakub Kicinski <kuba@kernel.org> Cc: netdev@vger.kernel.org Cc: tipc-discussion@lists.sourceforge.net Cc: linux-kernel@vger.kernel.org Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org> --- net/tipc/crypto.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)