diff options
author | Yang Yingliang <yangyingliang@huawei.com> | 2023-01-19 17:22:10 +0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-01-20 18:15:10 -0800 |
commit | 5e64f59a3cc2c4cfba748b87f0761d865dec7924 (patch) | |
tree | 981d721c1de35311a6b02567a39ce228f9b268a6 /drivers | |
parent | bad5532ecf3300620c5a68d63eda3346e51488f8 (diff) |
net: microchip: vcap: use kmemdup() to allocate memory
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>
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com>
Link: https://lore.kernel.org/r/20230119092210.3607634-1-yangyingliang@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/microchip/vcap/vcap_api.c | 6 |
1 files 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); } |