Re: [PATCH net v5] net: systemport: Add error pointer checks in bcm_sysport_map_queues() and bcm_sysport_unmap_queues()
From: Simon Horman
Date: Fri Sep 27 2024 - 07:02:49 EST
+ Vladimir
On Thu, Sep 26, 2024 at 04:05:12PM +0000, Dipendra Khadka wrote:
> Add error pointer checks in bcm_sysport_map_queues() and
> bcm_sysport_unmap_queues() after calling dsa_port_from_netdev().
>
> Fixes: 1593cd40d785 ("net: systemport: use standard netdevice notifier to detect DSA presence")
> Signed-off-by: Dipendra Khadka <kdipendra88@xxxxxxxxx>
Reviewed-by: Simon Horman <horms@xxxxxxxxxx>
> ---
> v5:
> -Removed extra parentheses
> v4: https://lore.kernel.org/all/20240925152927.4579-1-kdipendra88@xxxxxxxxx/
> - Removed wrong and used correct Fixes: tag
> v3: https://lore.kernel.org/all/20240924185634.2358-1-kdipendra88@xxxxxxxxx/
> - Updated patch subject
> - Updated patch description
> - Added Fixes: tags
> - Fixed typo from PRT_ERR to PTR_ERR
> - Error is checked just after assignment
> v2: https://lore.kernel.org/all/20240923053900.1310-1-kdipendra88@xxxxxxxxx/
> - Change the subject of the patch to net
> v1: https://lore.kernel.org/all/20240922181739.50056-1-kdipendra88@xxxxxxxxx/
> drivers/net/ethernet/broadcom/bcmsysport.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
> index c9faa8540859..a7ad829f11d4 100644
> --- a/drivers/net/ethernet/broadcom/bcmsysport.c
> +++ b/drivers/net/ethernet/broadcom/bcmsysport.c
> @@ -2331,11 +2331,15 @@ static const struct net_device_ops bcm_sysport_netdev_ops = {
> static int bcm_sysport_map_queues(struct net_device *dev,
> struct net_device *slave_dev)
> {
> - struct dsa_port *dp = dsa_port_from_netdev(slave_dev);
> struct bcm_sysport_priv *priv = netdev_priv(dev);
> struct bcm_sysport_tx_ring *ring;
> unsigned int num_tx_queues;
> unsigned int q, qp, port;
> + struct dsa_port *dp;
> +
> + dp = dsa_port_from_netdev(slave_dev);
> + if (IS_ERR(dp))
> + return PTR_ERR(dp);
>
> /* We can't be setting up queue inspection for non directly attached
> * switches
> @@ -2386,11 +2390,15 @@ static int bcm_sysport_map_queues(struct net_device *dev,
> static int bcm_sysport_unmap_queues(struct net_device *dev,
> struct net_device *slave_dev)
> {
> - struct dsa_port *dp = dsa_port_from_netdev(slave_dev);
> struct bcm_sysport_priv *priv = netdev_priv(dev);
> struct bcm_sysport_tx_ring *ring;
> unsigned int num_tx_queues;
> unsigned int q, qp, port;
> + struct dsa_port *dp;
> +
> + dp = dsa_port_from_netdev(slave_dev);
> + if (IS_ERR(dp))
> + return PTR_ERR(dp);
>
> port = dp->index;
>
> --
> 2.43.0
>