Re: [PATCH v4 net-next 08/10] net: mscc: ocelot: register devlink ports
From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-01-14 17:26:47
On Thu, Jan 14, 2021 at 09:19:43AM -0800, Jakub Kicinski wrote:
On Thu, 14 Jan 2021 12:27:43 +0200 Vladimir Oltean wrote:quoted
On Wed, Jan 13, 2021 at 07:30:33PM -0800, Jakub Kicinski wrote:quoted
On Mon, 11 Jan 2021 19:43:14 +0200 Vladimir Oltean wrote:quoted
+struct ocelot_devlink_private { + struct ocelot *ocelot; +};I don't think you ever explained to me why you don't put struct ocelot in the priv. - ocelot = devm_kzalloc(&pdev->dev, sizeof(*ocelot), GFP_KERNEL); - if (!ocelot) + devlink = devlink_alloc(&ocelot_devlink_ops, sizeof(*ocelot)); + if (!devlink) return -ENOMEM; + ocelot = devlink_priv(ocelot->devlink);Because that's not going to be all? The error path handling and teardown all need to change, because I no longer use device-managed allocation, and I wanted to avoid that.Come on, is it really hard enough to warrant us exchanging multiple emails? Having driver structure in devlink priv is the standard way of handling this, there's value in uniformity.
I did as you requested in v5 anyway. It does not save me of having to keep a devlink pointer in struct ocelot though, due to the fact that the layout with struct devlink being a container of struct ocelot is not common between the DSA felix driver and the switchdev ocelot driver. So much for uniformity.