Re: [PATCH net-next v29 3/3] mctp pcc: Implement MCTP over PCC Transport

From: Simon Horman

Date: Fri Sep 26 2025 - 10:16:54 EST


On Thu, Sep 25, 2025 at 03:00:26PM -0400, Adam Young wrote:

...

> +static int initialize_MTU(struct net_device *ndev)
> +{
> + struct mctp_pcc_ndev *mctp_pcc_ndev = netdev_priv(ndev);
> + struct mctp_pcc_mailbox *outbox;
> + int mctp_pcc_mtu;
> +
> + outbox = &mctp_pcc_ndev->outbox;
> + outbox->chan = pcc_mbox_request_channel(&outbox->client, outbox->index);
> + mctp_pcc_mtu = outbox->chan->shmem_size - sizeof(struct pcc_header);

Hi Adam,

On the line below it is expected that outbox->chan may be an error value
rather than a valid pointer. But on the line above outbox->chan is
dereferenced.

This does not seem consistent.

Flagged by Smatch.

> + if (IS_ERR(outbox->chan))
> + return PTR_ERR(outbox->chan);
> +
> + pcc_mbox_free_channel(mctp_pcc_ndev->outbox.chan);
> +
> + mctp_pcc_ndev = netdev_priv(ndev);
> + ndev->mtu = MCTP_MIN_MTU;
> + ndev->max_mtu = mctp_pcc_mtu;
> + ndev->min_mtu = MCTP_MIN_MTU;
> +
> + return 0;
> +}

...

--
pw-bot: changes-requested