Re: [net-next PATCH v4 03/11] net: pcs: Add subsystem
From: Sean Anderson
Date: Mon May 19 2025 - 13:44:19 EST
On 5/14/25 12:22, Lei Wei wrote:
>
>
> On 5/13/2025 12:10 AM, Sean Anderson wrote:
>> +/**
>> + * pcs_register_full() - register a new PCS
>> + * @dev: The device requesting the PCS
>> + * @fwnode: The PCS's firmware node; typically @dev.fwnode
>> + * @pcs: The PCS to register
>> + *
>> + * Registers a new PCS which can be attached to a phylink.
>> + *
>> + * Return: 0 on success, or -errno on error
>> + */
>> +int pcs_register_full(struct device *dev, struct fwnode_handle *fwnode,
>> + struct phylink_pcs *pcs)
>> +{
>> + struct pcs_wrapper *wrapper;
>> +
>> + if (!dev || !pcs->ops)
>> + return -EINVAL;
>> +
>> + if (!pcs->ops->pcs_an_restart || !pcs->ops->pcs_config ||
>> + !pcs->ops->pcs_get_state)
>> + return -EINVAL;
>> +
>> + wrapper = kzalloc(sizeof(*wrapper), GFP_KERNEL);
>> + if (!wrapper)
>> + return -ENOMEM;
>
> How about the case where pcs is removed and then comes back again? Should we find the original wrapper and attach it to pcs again instead of creating a new wrapper?
When the PCS is removed the old wrapper is removed from pcs_wrappers, so
it can no longer be looked up any more. I think trying to save/restore
the wrapper would be much more trouble than it's worth.
--Sean