Message ID | 20230119092210.3607634-1-yangyingliang@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 5e64f59a3cc2c4cfba748b87f0761d865dec7924 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: microchip: vcap: use kmemdup() to allocate memory | expand |
On 1/19/2023 1:22 AM, Yang Yingliang wrote: > Use kmemdup() helper instead of open-coding to simplify > the code when allocating newckf and newcaf. > > Generated by: scripts/coccinelle/api/memdup.cocci > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > --- > drivers/net/ethernet/microchip/vcap/vcap_api.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) I don't like kmemdup much as you have to be very careful to make sure the original memory is freed in the error case. However this code seems like it works correctly since it was already having to free the source memory earlier. Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Hi Yang, Thanks for the correction. Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com> BR Steen On Thu, 2023-01-19 at 17:22 +0800, Yang Yingliang wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the > content is safe > > Use kmemdup() helper instead of open-coding to simplify > the code when allocating newckf and newcaf. > > Generated by: scripts/coccinelle/api/memdup.cocci > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > --- > drivers/net/ethernet/microchip/vcap/vcap_api.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api.c > b/drivers/net/ethernet/microchip/vcap/vcap_api.c > index 71f787a78295..d9cf2cd1925a 100644 > --- a/drivers/net/ethernet/microchip/vcap/vcap_api.c > +++ b/drivers/net/ethernet/microchip/vcap/vcap_api.c > @@ -1000,18 +1000,16 @@ static struct vcap_rule_internal *vcap_dup_rule(struct > vcap_rule_internal *ri, > return duprule; > > list_for_each_entry(ckf, &ri->data.keyfields, ctrl.list) { > - newckf = kzalloc(sizeof(*newckf), GFP_KERNEL); > + newckf = kmemdup(ckf, sizeof(*newckf), GFP_KERNEL); > if (!newckf) > return ERR_PTR(-ENOMEM); > - memcpy(newckf, ckf, sizeof(*newckf)); > list_add_tail(&newckf->ctrl.list, &duprule->data.keyfields); > } > > list_for_each_entry(caf, &ri->data.actionfields, ctrl.list) { > - newcaf = kzalloc(sizeof(*newcaf), GFP_KERNEL); > + newcaf = kmemdup(caf, sizeof(*newcaf), GFP_KERNEL); > if (!newcaf) > return ERR_PTR(-ENOMEM); > - memcpy(newcaf, caf, sizeof(*newcaf)); > list_add_tail(&newcaf->ctrl.list, &duprule- > >data.actionfields); > } > > -- > 2.25.1 >
Hello: This patch was applied to netdev/net-next.git (master) by Jakub Kicinski <kuba@kernel.org>: On Thu, 19 Jan 2023 17:22:10 +0800 you wrote: > Use kmemdup() helper instead of open-coding to simplify > the code when allocating newckf and newcaf. > > Generated by: scripts/coccinelle/api/memdup.cocci > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > > [...] Here is the summary with links: - [net-next] net: microchip: vcap: use kmemdup() to allocate memory https://git.kernel.org/netdev/net-next/c/5e64f59a3cc2 You are awesome, thank you!
diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api.c b/drivers/net/ethernet/microchip/vcap/vcap_api.c index 71f787a78295..d9cf2cd1925a 100644 --- a/drivers/net/ethernet/microchip/vcap/vcap_api.c +++ b/drivers/net/ethernet/microchip/vcap/vcap_api.c @@ -1000,18 +1000,16 @@ static struct vcap_rule_internal *vcap_dup_rule(struct vcap_rule_internal *ri, return duprule; list_for_each_entry(ckf, &ri->data.keyfields, ctrl.list) { - newckf = kzalloc(sizeof(*newckf), GFP_KERNEL); + newckf = kmemdup(ckf, sizeof(*newckf), GFP_KERNEL); if (!newckf) return ERR_PTR(-ENOMEM); - memcpy(newckf, ckf, sizeof(*newckf)); list_add_tail(&newckf->ctrl.list, &duprule->data.keyfields); } list_for_each_entry(caf, &ri->data.actionfields, ctrl.list) { - newcaf = kzalloc(sizeof(*newcaf), GFP_KERNEL); + newcaf = kmemdup(caf, sizeof(*newcaf), GFP_KERNEL); if (!newcaf) return ERR_PTR(-ENOMEM); - memcpy(newcaf, caf, sizeof(*newcaf)); list_add_tail(&newcaf->ctrl.list, &duprule->data.actionfields); }
Use kmemdup() helper instead of open-coding to simplify the code when allocating newckf and newcaf. Generated by: scripts/coccinelle/api/memdup.cocci Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- drivers/net/ethernet/microchip/vcap/vcap_api.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)