diff options
author | Felix Fietkau <nbd@nbd.name> | 2022-04-05 22:57:52 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-04-06 16:08:50 +0300 |
commit | 1ccc723b5829d63a29627e1d2de2da84efd037c2 (patch) | |
tree | 141658777a8868cfe4204fa470867e7003b197bc /drivers/net/ethernet/mediatek/mtk_ppe.c | |
parent | bb14c19122b768c3d659da2e91fb9324a2374d06 (diff) | |
download | linux-1ccc723b5829d63a29627e1d2de2da84efd037c2.tar.xz |
net: ethernet: mtk_eth_soc: allocate struct mtk_ppe separately
Preparation for adding more data to it, which will increase its size.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mediatek/mtk_ppe.c')
-rw-r--r-- | drivers/net/ethernet/mediatek/mtk_ppe.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c index 472bcd3269a7..c56518272729 100644 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c @@ -384,10 +384,15 @@ int mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_foe_entry *entry, return hash; } -int mtk_ppe_init(struct mtk_ppe *ppe, struct device *dev, void __iomem *base, +struct mtk_ppe *mtk_ppe_init(struct device *dev, void __iomem *base, int version) { struct mtk_foe_entry *foe; + struct mtk_ppe *ppe; + + ppe = devm_kzalloc(dev, sizeof(*ppe), GFP_KERNEL); + if (!ppe) + return NULL; /* need to allocate a separate device, since it PPE DMA access is * not coherent. @@ -399,13 +404,13 @@ int mtk_ppe_init(struct mtk_ppe *ppe, struct device *dev, void __iomem *base, foe = dmam_alloc_coherent(ppe->dev, MTK_PPE_ENTRIES * sizeof(*foe), &ppe->foe_phys, GFP_KERNEL); if (!foe) - return -ENOMEM; + return NULL; ppe->foe_table = foe; mtk_ppe_debugfs_init(ppe); - return 0; + return ppe; } static void mtk_ppe_init_foe_table(struct mtk_ppe *ppe) |