Re: [PATCH net-next v3 8/9] net: dsa: microchip: init predictable IPV to queue mapping for all non KSZ8xxx variants

From: Arun.Ramadoss
Date: Sun Apr 07 2024 - 23:42:28 EST


Hi Oleksij,

> +static int ksz9477_set_default_prio_queue_mapping(struct ksz_device
> *dev,
> + int port)
> +{
> + u32 queue_map = 0;
> + int ipv;

Just a suggestion for readability: if you can use common variable for
counter variable like cnt or n similar to return variable ret, it will
be easier to follow instead of ipv here, queue in other function.

> +
> + for (ipv = 0; ipv < dev->info->num_ipvs; ipv++) {
> + int queue;
> +
> + /* Traffic Type (TT) is corresponding to the Internal
> Priority
> + * Value (IPV) in the switch. Traffic Class (TC) is
> + * corresponding to the queue in the switch.
> + */
> + queue = ieee8021q_tt_to_tc(ipv, dev->info-
> >num_tx_queues);
> + if (queue < 0)
> + return queue;

what happens if the num_tx_queues value passed is other than 1 to 8.
For ex: if it is 9, then ieee8021q_tt_to_tc( ) generates pr_warn as
invalid number of queue and return queue as 0. if will not execute, so
queue_map will be updated. Do we need check for valid range of values
instead of just queue < 0.

Not sure this scenario can occur.

> +
> + queue_map |= queue << (ipv * KSZ9477_PORT_TC_MAP_S);
> + }
> +
> + return ksz_pwrite32(dev, port, KSZ9477_PORT_MRI_TC_MAP__4,
> queue_map);
> +}
> +
>