* [PATCH v2 RESEND 0/5] wifi: mediatek: drop redundant USB device references
@ 2026-04-30 8:33 Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 1/5] wifi: mt76: drop redundant device reference Johan Hovold
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Johan Hovold @ 2026-04-30 8:33 UTC (permalink / raw)
To: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Jakub Kicinski
Cc: Shayne Chen, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, linux-wireless, linux-mediatek,
linux-kernel, Johan Hovold
[ This is a resend (with trimmed CC) of the five Mediatek patches which
still haven't been picked up from [1]. ]
Driver core holds a reference to the USB interface and its parent USB
device while the interface is bound to a driver and there is no need to
take additional references unless the structures are needed after
disconnect.
Drop redundant device references to reduce cargo culting, make it easier
to spot drivers where an extra reference is needed, and reduce the risk
of memory leaks when drivers fail to release them.
Johan
[1] https://lore.kernel.org/all/20260306085144.12064-1-johan@kernel.org/
Johan Hovold (5):
wifi: mt76: drop redundant device reference
wifi: mt76x0u: drop redundant device reference
wifi: mt76x2u: drop redundant device reference
wifi: mt76: mt792xu: drop redundant device reference
wifi: mt7601u: drop redundant device reference
drivers/net/wireless/mediatek/mt76/mt7615/usb.c | 3 ---
drivers/net/wireless/mediatek/mt76/mt76x0/usb.c | 3 ---
drivers/net/wireless/mediatek/mt76/mt76x2/usb.c | 4 ----
drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 2 --
drivers/net/wireless/mediatek/mt76/mt7925/usb.c | 2 --
drivers/net/wireless/mediatek/mt76/mt792x_usb.c | 1 -
drivers/net/wireless/mediatek/mt7601u/usb.c | 3 ---
7 files changed, 18 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 RESEND 1/5] wifi: mt76: drop redundant device reference
2026-04-30 8:33 [PATCH v2 RESEND 0/5] wifi: mediatek: drop redundant USB device references Johan Hovold
@ 2026-04-30 8:33 ` Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 2/5] wifi: mt76x0u: " Johan Hovold
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2026-04-30 8:33 UTC (permalink / raw)
To: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Jakub Kicinski
Cc: Shayne Chen, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, linux-wireless, linux-mediatek,
linux-kernel, Johan Hovold
Driver core holds a reference to the USB interface and its parent USB
device while the interface is bound to a driver and there is no need to
take additional references unless the structures are needed after
disconnect.
Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/net/wireless/mediatek/mt76/mt7615/usb.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/usb.c b/drivers/net/wireless/mediatek/mt76/mt7615/usb.c
index d91feffadda9..bab7b91f14be 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/usb.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/usb.c
@@ -151,7 +151,6 @@ static int mt7663u_probe(struct usb_interface *usb_intf,
return -ENOMEM;
dev = container_of(mdev, struct mt7615_dev, mt76);
- udev = usb_get_dev(udev);
usb_reset_device(udev);
usb_set_intfdata(usb_intf, dev);
@@ -193,7 +192,6 @@ static int mt7663u_probe(struct usb_interface *usb_intf,
error:
mt76u_queues_deinit(&dev->mt76);
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
mt76_free_device(&dev->mt76);
@@ -211,7 +209,6 @@ static void mt7663u_disconnect(struct usb_interface *usb_intf)
mt7663u_cleanup(dev);
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
mt76_free_device(&dev->mt76);
}
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 RESEND 2/5] wifi: mt76x0u: drop redundant device reference
2026-04-30 8:33 [PATCH v2 RESEND 0/5] wifi: mediatek: drop redundant USB device references Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 1/5] wifi: mt76: drop redundant device reference Johan Hovold
@ 2026-04-30 8:33 ` Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 3/5] wifi: mt76x2u: " Johan Hovold
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2026-04-30 8:33 UTC (permalink / raw)
To: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Jakub Kicinski
Cc: Shayne Chen, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, linux-wireless, linux-mediatek,
linux-kernel, Johan Hovold
Driver core holds a reference to the USB interface and its parent USB
device while the interface is bound to a driver and there is no need to
take additional references unless the structures are needed after
disconnect.
Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/net/wireless/mediatek/mt76/mt76x0/usb.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/usb.c b/drivers/net/wireless/mediatek/mt76/mt76x0/usb.c
index 90e5666c0857..2acce121fb14 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/usb.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/usb.c
@@ -245,7 +245,6 @@ static int mt76x0u_probe(struct usb_interface *usb_intf,
if (id->driver_info)
dev->no_2ghz = true;
- usb_dev = usb_get_dev(usb_dev);
usb_reset_device(usb_dev);
usb_set_intfdata(usb_intf, dev);
@@ -284,7 +283,6 @@ static int mt76x0u_probe(struct usb_interface *usb_intf,
err:
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
mt76u_queues_deinit(&dev->mt76);
mt76_free_device(&dev->mt76);
@@ -303,7 +301,6 @@ static void mt76x0_disconnect(struct usb_interface *usb_intf)
mt76x0u_cleanup(dev);
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
mt76_free_device(&dev->mt76);
}
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 RESEND 3/5] wifi: mt76x2u: drop redundant device reference
2026-04-30 8:33 [PATCH v2 RESEND 0/5] wifi: mediatek: drop redundant USB device references Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 1/5] wifi: mt76: drop redundant device reference Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 2/5] wifi: mt76x0u: " Johan Hovold
@ 2026-04-30 8:33 ` Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 4/5] wifi: mt76: mt792xu: " Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 5/5] wifi: mt7601u: " Johan Hovold
4 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2026-04-30 8:33 UTC (permalink / raw)
To: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Jakub Kicinski
Cc: Shayne Chen, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, linux-wireless, linux-mediatek,
linux-kernel, Johan Hovold
Driver core holds a reference to the USB interface and its parent USB
device while the interface is bound to a driver and there is no need to
take additional references unless the structures are needed after
disconnect.
Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/net/wireless/mediatek/mt76/mt76x2/usb.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb.c
index 01cb3b2830f3..8af360bca643 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb.c
@@ -57,7 +57,6 @@ static int mt76x2u_probe(struct usb_interface *intf,
dev = container_of(mdev, struct mt76x02_dev, mt76);
- udev = usb_get_dev(udev);
usb_reset_device(udev);
usb_set_intfdata(intf, dev);
@@ -84,14 +83,12 @@ static int mt76x2u_probe(struct usb_interface *intf,
mt76u_queues_deinit(&dev->mt76);
mt76_free_device(&dev->mt76);
usb_set_intfdata(intf, NULL);
- usb_put_dev(udev);
return err;
}
static void mt76x2u_disconnect(struct usb_interface *intf)
{
- struct usb_device *udev = interface_to_usbdev(intf);
struct mt76x02_dev *dev = usb_get_intfdata(intf);
struct ieee80211_hw *hw = mt76_hw(dev);
@@ -100,7 +97,6 @@ static void mt76x2u_disconnect(struct usb_interface *intf)
mt76x2u_cleanup(dev);
mt76_free_device(&dev->mt76);
usb_set_intfdata(intf, NULL);
- usb_put_dev(udev);
}
static int __maybe_unused mt76x2u_suspend(struct usb_interface *intf,
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 RESEND 4/5] wifi: mt76: mt792xu: drop redundant device reference
2026-04-30 8:33 [PATCH v2 RESEND 0/5] wifi: mediatek: drop redundant USB device references Johan Hovold
` (2 preceding siblings ...)
2026-04-30 8:33 ` [PATCH v2 RESEND 3/5] wifi: mt76x2u: " Johan Hovold
@ 2026-04-30 8:33 ` Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 5/5] wifi: mt7601u: " Johan Hovold
4 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2026-04-30 8:33 UTC (permalink / raw)
To: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Jakub Kicinski
Cc: Shayne Chen, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, linux-wireless, linux-mediatek,
linux-kernel, Johan Hovold
Driver core holds a reference to the USB interface and its parent USB
device while the interface is bound to a driver and there is no need to
take additional references unless the structures are needed after
disconnect.
Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 2 --
drivers/net/wireless/mediatek/mt76/mt7925/usb.c | 2 --
drivers/net/wireless/mediatek/mt76/mt792x_usb.c | 1 -
3 files changed, 5 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/usb.c b/drivers/net/wireless/mediatek/mt76/mt7921/usb.c
index 17057e68bf21..9bfc234f306f 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/usb.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/usb.c
@@ -197,7 +197,6 @@ static int mt7921u_probe(struct usb_interface *usb_intf,
dev->fw_features = features;
dev->hif_ops = &hif_ops;
- udev = usb_get_dev(udev);
usb_reset_device(udev);
usb_set_intfdata(usb_intf, dev);
@@ -246,7 +245,6 @@ static int mt7921u_probe(struct usb_interface *usb_intf,
mt76u_queues_deinit(&dev->mt76);
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
mt76_free_device(&dev->mt76);
diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/usb.c b/drivers/net/wireless/mediatek/mt76/mt7925/usb.c
index d9968f03856d..84bcebbf009a 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7925/usb.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7925/usb.c
@@ -185,7 +185,6 @@ static int mt7925u_probe(struct usb_interface *usb_intf,
dev->fw_features = features;
dev->hif_ops = &hif_ops;
- udev = usb_get_dev(udev);
usb_reset_device(udev);
usb_set_intfdata(usb_intf, dev);
@@ -234,7 +233,6 @@ static int mt7925u_probe(struct usb_interface *usb_intf,
mt76u_queues_deinit(&dev->mt76);
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
mt76_free_device(&dev->mt76);
diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_usb.c b/drivers/net/wireless/mediatek/mt76/mt792x_usb.c
index 47827d1c5ccb..0d9dbd0aaf9e 100644
--- a/drivers/net/wireless/mediatek/mt76/mt792x_usb.c
+++ b/drivers/net/wireless/mediatek/mt76/mt792x_usb.c
@@ -341,7 +341,6 @@ void mt792xu_disconnect(struct usb_interface *usb_intf)
mt792xu_cleanup(dev);
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
mt76_free_device(&dev->mt76);
}
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 RESEND 5/5] wifi: mt7601u: drop redundant device reference
2026-04-30 8:33 [PATCH v2 RESEND 0/5] wifi: mediatek: drop redundant USB device references Johan Hovold
` (3 preceding siblings ...)
2026-04-30 8:33 ` [PATCH v2 RESEND 4/5] wifi: mt76: mt792xu: " Johan Hovold
@ 2026-04-30 8:33 ` Johan Hovold
4 siblings, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2026-04-30 8:33 UTC (permalink / raw)
To: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Jakub Kicinski
Cc: Shayne Chen, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, linux-wireless, linux-mediatek,
linux-kernel, Johan Hovold
Driver core holds a reference to the USB interface and its parent USB
device while the interface is bound to a driver and there is no need to
take additional references unless the structures are needed after
disconnect.
Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/net/wireless/mediatek/mt7601u/usb.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt7601u/usb.c b/drivers/net/wireless/mediatek/mt7601u/usb.c
index c41ae251cb95..9306870cbc91 100644
--- a/drivers/net/wireless/mediatek/mt7601u/usb.c
+++ b/drivers/net/wireless/mediatek/mt7601u/usb.c
@@ -274,7 +274,6 @@ static int mt7601u_probe(struct usb_interface *usb_intf,
if (!dev)
return -ENOMEM;
- usb_dev = usb_get_dev(usb_dev);
usb_reset_device(usb_dev);
usb_set_intfdata(usb_intf, dev);
@@ -319,7 +318,6 @@ static int mt7601u_probe(struct usb_interface *usb_intf,
mt7601u_cleanup(dev);
err:
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
destroy_workqueue(dev->stat_wq);
ieee80211_free_hw(dev->hw);
@@ -334,7 +332,6 @@ static void mt7601u_disconnect(struct usb_interface *usb_intf)
mt7601u_cleanup(dev);
usb_set_intfdata(usb_intf, NULL);
- usb_put_dev(interface_to_usbdev(usb_intf));
destroy_workqueue(dev->stat_wq);
ieee80211_free_hw(dev->hw);
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-04-30 8:33 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-30 8:33 [PATCH v2 RESEND 0/5] wifi: mediatek: drop redundant USB device references Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 1/5] wifi: mt76: drop redundant device reference Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 2/5] wifi: mt76x0u: " Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 3/5] wifi: mt76x2u: " Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 4/5] wifi: mt76: mt792xu: " Johan Hovold
2026-04-30 8:33 ` [PATCH v2 RESEND 5/5] wifi: mt7601u: " Johan Hovold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox