Subject: Re: [PATCH net-next v6 3/4] rocker: Handle protodown notifications.

From: Sergei Shtylyov <[email-masked]>
Date: Tue, 14 Jul 2015 19:42:51 +0300

Hello.

On 07/14/2015 06:32 PM, [email-masked] wrote:

> From: Anuradha Karuppiah <[email-masked]>

> protodown can be set by user space applications like MLAG on detecting
> errors on a switch port. This patch provides sample switch driver changes
> for handling protodown. Rocker PHYS disables the port in response to
> protodown.

> Signed-off-by: Anuradha Karuppiah <[email-masked]>
> Signed-off-by: Andy Gospodarek <[email-masked]>
> Signed-off-by: Roopa Prabhu <[email-masked]>
> Signed-off-by: Wilson Kok <[email-masked]>
> ---
>   drivers/net/ethernet/rocker/rocker.c |   19 ++++++++++++++++++-
>   1 file changed, 18 insertions(+), 1 deletion(-)

> diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c
> index 2d8578cade..ec950d9 100644
> --- a/drivers/net/ethernet/rocker/rocker.c
> +++ b/drivers/net/ethernet/rocker/rocker.c
> @@ -3983,7 +3983,8 @@ static int rocker_port_open(struct net_device *dev)
>
>   	napi_enable(&rocker_port->napi_tx);
>   	napi_enable(&rocker_port->napi_rx);
> -	rocker_port_set_enable(rocker_port, true);
> +	if (!(dev->proto_down))

    Inner parens not needed.

> +		rocker_port_set_enable(rocker_port, true);
>   	netif_start_queue(dev);
>   	return 0;
>
> @@ -4167,6 +4168,21 @@ static int rocker_port_get_phys_port_name(struct net_device *dev,
>   	return err ? -EOPNOTSUPP : 0;
>   }
>
> +static int rocker_port_change_proto_down(struct net_device *dev,
> +					 bool proto_down)
> +{
> +	struct rocker_port *rocker_port = netdev_priv(dev);
> +
> +	if (rocker_port->dev->flags & IFF_UP) {
> +		if (proto_down)
> +			rocker_port_set_enable(rocker_port, false);
> +		else
> +			rocker_port_set_enable(rocker_port, true);

    Why not:

		rocker_port_set_enable(rocker_port, !proto_down);

[...]

MBR, Sergei