]> www.infradead.org Git - users/hch/misc.git/commitdiff
can: gs_usb: gs_make_candev(): populate net_device->dev_port
authorCeleste Liu <uwu@coelacanthus.name>
Tue, 30 Sep 2025 06:53:39 +0000 (14:53 +0800)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Wed, 8 Oct 2025 08:15:46 +0000 (10:15 +0200)
The gs_usb driver supports USB devices with more than 1 CAN channel.
In old kernel before 3.15, it uses net_device->dev_id to distinguish
different channel in userspace, which was done in commit
acff76fa45b4 ("can: gs_usb: gs_make_candev(): set netdev->dev_id").
But since 3.15, the correct way is populating net_device->dev_port.
And according to documentation, if network device support multiple
interface, lack of net_device->dev_port SHALL be treated as a bug.

Fixes: acff76fa45b4 ("can: gs_usb: gs_make_candev(): set netdev->dev_id")
Cc: stable@vger.kernel.org
Signed-off-by: Celeste Liu <uwu@coelacanthus.name>
Link: https://patch.msgid.link/20250930-gs-usb-populate-net_device-dev_port-v1-1-68a065de6937@coelacanthus.name
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/usb/gs_usb.c

index 9fb4cbbd6d6dc88f433020eb0417ea53cd0c4d5f..69b8d6da651bf476c7efd47dedb7f395f4c02cd9 100644 (file)
@@ -1245,6 +1245,7 @@ static struct gs_can *gs_make_candev(unsigned int channel,
 
        netdev->flags |= IFF_ECHO; /* we support full roundtrip echo */
        netdev->dev_id = channel;
+       netdev->dev_port = channel;
 
        /* dev setup */
        strcpy(dev->bt_const.name, KBUILD_MODNAME);