* [RFT PATCH v3 0/1] Fix "detection of high tier USB3 devices" patch in usb-linus
@ 2025-06-27 16:43 Mathias Nyman
2025-06-27 16:43 ` [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes Mathias Nyman
0 siblings, 1 reply; 9+ messages in thread
From: Mathias Nyman @ 2025-06-27 16:43 UTC (permalink / raw)
To: gregkh; +Cc: linux-usb, stern, oneukum, konrad.dybcio, broonie, Mathias Nyman
Hi
This is the third attempt to fix "detection of hight tier USB3 devices".
It is rebased on top of the earlier fix attempt:
a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm")
The original commit is:
8f5b7e2bec1c ("usb: hub: fix detection of high tier USB3 devices behind suspended hubs")
Both commits above are in Greg's usb-linus branch.
This is a rebased version of v2 with no other functional changes.
v2 was tested by:
Tested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> # SC8280XP CRD
Tested-by: Mark Brown <broonie@kernel.org>
Any additional testing is appreciated
Thanks
Mathias
Mathias Nyman (1):
usb: hub: Fix flushing of delayed work used for post resume purposes
drivers/usb/core/hub.c | 21 ++++++++-------------
drivers/usb/core/hub.h | 1 +
2 files changed, 9 insertions(+), 13 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread* [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes 2025-06-27 16:43 [RFT PATCH v3 0/1] Fix "detection of high tier USB3 devices" patch in usb-linus Mathias Nyman @ 2025-06-27 16:43 ` Mathias Nyman 2025-06-27 21:42 ` Mark Brown ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Mathias Nyman @ 2025-06-27 16:43 UTC (permalink / raw) To: gregkh Cc: linux-usb, stern, oneukum, konrad.dybcio, broonie, Mathias Nyman, stable Delayed work that prevents USB3 hubs from runtime-suspending too early needed to be flushed in hub_quiesce() to resolve issues detected on QC SC8280XP CRD board during suspend resume testing. This flushing did however trigger new issues on Raspberry Pi 3B+, which doesn't have USB3 ports, and doesn't queue any post resume delayed work. The flushed 'hub->init_work' item is used for several purposes, and is originally initialized with a 'NULL' work function. The work function is also changed on the fly, which may contribute to the issue. Solve this by creating a dedicated delayed work item for post resume work, and flush that delayed work in hub_quiesce() Cc: stable@kernel.org Fixes: a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") Reported-by: Mark Brown <broonie@kernel.org> Closes: https://lore.kernel.org/linux-usb/aF5rNp1l0LWITnEB@finisterre.sirena.org.uk Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> --- v3: - Rebase on top of a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") - Rewrite commit message v2: - Add and use dedicated delayed work struct for post resume work - Add commit message section about dedicated work drivers/usb/core/hub.c | 21 ++++++++------------- drivers/usb/core/hub.h | 1 + 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 08562711dcf2..3e1215f7a9a0 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -1074,12 +1074,11 @@ int usb_remove_device(struct usb_device *udev) enum hub_activation_type { HUB_INIT, HUB_INIT2, HUB_INIT3, /* INITs must come first */ - HUB_POST_RESET, HUB_RESUME, HUB_RESET_RESUME, HUB_POST_RESUME, + HUB_POST_RESET, HUB_RESUME, HUB_RESET_RESUME, }; static void hub_init_func2(struct work_struct *ws); static void hub_init_func3(struct work_struct *ws); -static void hub_post_resume(struct work_struct *ws); static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) { @@ -1103,12 +1102,6 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) goto init3; } - if (type == HUB_POST_RESUME) { - usb_autopm_put_interface_async(to_usb_interface(hub->intfdev)); - hub_put(hub); - return; - } - hub_get(hub); /* The superspeed hub except for root hub has to use Hub Depth @@ -1362,8 +1355,8 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) usb_autopm_get_interface_no_resume( to_usb_interface(hub->intfdev)); - INIT_DELAYED_WORK(&hub->init_work, hub_post_resume); - queue_delayed_work(system_power_efficient_wq, &hub->init_work, + queue_delayed_work(system_power_efficient_wq, + &hub->post_resume_work, msecs_to_jiffies(USB_SS_PORT_U0_WAKE_TIME)); return; } @@ -1388,9 +1381,10 @@ static void hub_init_func3(struct work_struct *ws) static void hub_post_resume(struct work_struct *ws) { - struct usb_hub *hub = container_of(ws, struct usb_hub, init_work.work); + struct usb_hub *hub = container_of(ws, struct usb_hub, post_resume_work.work); - hub_activate(hub, HUB_POST_RESUME); + usb_autopm_put_interface_async(to_usb_interface(hub->intfdev)); + hub_put(hub); } enum hub_quiescing_type { @@ -1418,7 +1412,7 @@ static void hub_quiesce(struct usb_hub *hub, enum hub_quiescing_type type) /* Stop hub_wq and related activity */ timer_delete_sync(&hub->irq_urb_retry); - flush_delayed_work(&hub->init_work); + flush_delayed_work(&hub->post_resume_work); usb_kill_urb(hub->urb); if (hub->has_indicators) cancel_delayed_work_sync(&hub->leds); @@ -1977,6 +1971,7 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) hub->hdev = hdev; INIT_DELAYED_WORK(&hub->leds, led_work); INIT_DELAYED_WORK(&hub->init_work, NULL); + INIT_DELAYED_WORK(&hub->post_resume_work, hub_post_resume); INIT_WORK(&hub->events, hub_event); INIT_LIST_HEAD(&hub->onboard_devs); spin_lock_init(&hub->irq_urb_lock); diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h index e6ae73f8a95d..9ebc5ef54a32 100644 --- a/drivers/usb/core/hub.h +++ b/drivers/usb/core/hub.h @@ -70,6 +70,7 @@ struct usb_hub { u8 indicator[USB_MAXCHILDREN]; struct delayed_work leds; struct delayed_work init_work; + struct delayed_work post_resume_work; struct work_struct events; spinlock_t irq_urb_lock; struct timer_list irq_urb_retry; -- 2.43.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes 2025-06-27 16:43 ` [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes Mathias Nyman @ 2025-06-27 21:42 ` Mark Brown 2025-06-27 22:40 ` Konrad Dybcio 2025-06-28 14:46 ` Greg KH 2 siblings, 0 replies; 9+ messages in thread From: Mark Brown @ 2025-06-27 21:42 UTC (permalink / raw) To: Mathias Nyman; +Cc: gregkh, linux-usb, stern, oneukum, konrad.dybcio, stable [-- Attachment #1: Type: text/plain, Size: 355 bytes --] On Fri, Jun 27, 2025 at 07:43:48PM +0300, Mathias Nyman wrote: > Delayed work that prevents USB3 hubs from runtime-suspending too early > needed to be flushed in hub_quiesce() to resolve issues detected on > QC SC8280XP CRD board during suspend resume testing. Tested-by: Mark Brown <broonie@kernel.org> on both the Raspberry Pi 3B+ and Libretech Alta. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes 2025-06-27 16:43 ` [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes Mathias Nyman 2025-06-27 21:42 ` Mark Brown @ 2025-06-27 22:40 ` Konrad Dybcio 2025-06-28 14:46 ` Greg KH 2 siblings, 0 replies; 9+ messages in thread From: Konrad Dybcio @ 2025-06-27 22:40 UTC (permalink / raw) To: Mathias Nyman, gregkh; +Cc: linux-usb, stern, oneukum, broonie, stable On 6/27/25 6:43 PM, Mathias Nyman wrote: > Delayed work that prevents USB3 hubs from runtime-suspending too early > needed to be flushed in hub_quiesce() to resolve issues detected on > QC SC8280XP CRD board during suspend resume testing. > > This flushing did however trigger new issues on Raspberry Pi 3B+, which > doesn't have USB3 ports, and doesn't queue any post resume delayed work. > > The flushed 'hub->init_work' item is used for several purposes, and > is originally initialized with a 'NULL' work function. The work function > is also changed on the fly, which may contribute to the issue. > > Solve this by creating a dedicated delayed work item for post resume work, > and flush that delayed work in hub_quiesce() > > Cc: stable@kernel.org > Fixes: a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") > Reported-by: Mark Brown <broonie@kernel.org> > Closes: https://lore.kernel.org/linux-usb/aF5rNp1l0LWITnEB@finisterre.sirena.org.uk > Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> > --- Still no issues, thanks for working on this! Tested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> # SC8280XP CRD Konrad ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes 2025-06-27 16:43 ` [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes Mathias Nyman 2025-06-27 21:42 ` Mark Brown 2025-06-27 22:40 ` Konrad Dybcio @ 2025-06-28 14:46 ` Greg KH 2025-06-30 10:07 ` Mathias Nyman 2 siblings, 1 reply; 9+ messages in thread From: Greg KH @ 2025-06-28 14:46 UTC (permalink / raw) To: Mathias Nyman; +Cc: linux-usb, stern, oneukum, konrad.dybcio, broonie, stable On Fri, Jun 27, 2025 at 07:43:48PM +0300, Mathias Nyman wrote: > Delayed work that prevents USB3 hubs from runtime-suspending too early > needed to be flushed in hub_quiesce() to resolve issues detected on > QC SC8280XP CRD board during suspend resume testing. > > This flushing did however trigger new issues on Raspberry Pi 3B+, which > doesn't have USB3 ports, and doesn't queue any post resume delayed work. > > The flushed 'hub->init_work' item is used for several purposes, and > is originally initialized with a 'NULL' work function. The work function > is also changed on the fly, which may contribute to the issue. > > Solve this by creating a dedicated delayed work item for post resume work, > and flush that delayed work in hub_quiesce() > > Cc: stable@kernel.org > Fixes: a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") > Reported-by: Mark Brown <broonie@kernel.org> > Closes: https://lore.kernel.org/linux-usb/aF5rNp1l0LWITnEB@finisterre.sirena.org.uk > Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> > --- > v3: > - Rebase on top of a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") > - Rewrite commit message > > v2: > - Add and use dedicated delayed work struct for post resume work > - Add commit message section about dedicated work This seems to work, want me to take this, or are you going to submit another one? I'll hold off on sending the pull request to Linus for -rc4 because of this. thanks, greg k-h ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes 2025-06-28 14:46 ` Greg KH @ 2025-06-30 10:07 ` Mathias Nyman 2025-06-30 11:19 ` Greg KH 0 siblings, 1 reply; 9+ messages in thread From: Mathias Nyman @ 2025-06-30 10:07 UTC (permalink / raw) To: Greg KH; +Cc: linux-usb, stern, oneukum, konrad.dybcio, broonie, stable On 28.6.2025 17.46, Greg KH wrote: > On Fri, Jun 27, 2025 at 07:43:48PM +0300, Mathias Nyman wrote: >> Delayed work that prevents USB3 hubs from runtime-suspending too early >> needed to be flushed in hub_quiesce() to resolve issues detected on >> QC SC8280XP CRD board during suspend resume testing. >> >> This flushing did however trigger new issues on Raspberry Pi 3B+, which >> doesn't have USB3 ports, and doesn't queue any post resume delayed work. >> >> The flushed 'hub->init_work' item is used for several purposes, and >> is originally initialized with a 'NULL' work function. The work function >> is also changed on the fly, which may contribute to the issue. >> >> Solve this by creating a dedicated delayed work item for post resume work, >> and flush that delayed work in hub_quiesce() >> >> Cc: stable@kernel.org >> Fixes: a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") >> Reported-by: Mark Brown <broonie@kernel.org> >> Closes: https://lore.kernel.org/linux-usb/aF5rNp1l0LWITnEB@finisterre.sirena.org.uk >> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> >> --- >> v3: >> - Rebase on top of a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") >> - Rewrite commit message >> >> v2: >> - Add and use dedicated delayed work struct for post resume work >> - Add commit message section about dedicated work > > This seems to work, want me to take this, or are you going to submit > another one? I'll hold off on sending the pull request to Linus for > -rc4 because of this. > > thanks, > > greg k-h Sorry about the response delay, was offline during weekend I'll do some quick additional smoketests, suspending and disconnecting runtime suspended chained USB3 hubs. Shouldn't take more than a couple of hours Thanks Mathias ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes 2025-06-30 10:07 ` Mathias Nyman @ 2025-06-30 11:19 ` Greg KH 2025-06-30 13:15 ` Mathias Nyman 0 siblings, 1 reply; 9+ messages in thread From: Greg KH @ 2025-06-30 11:19 UTC (permalink / raw) To: Mathias Nyman; +Cc: linux-usb, stern, oneukum, konrad.dybcio, broonie, stable On Mon, Jun 30, 2025 at 01:07:29PM +0300, Mathias Nyman wrote: > On 28.6.2025 17.46, Greg KH wrote: > > On Fri, Jun 27, 2025 at 07:43:48PM +0300, Mathias Nyman wrote: > > > Delayed work that prevents USB3 hubs from runtime-suspending too early > > > needed to be flushed in hub_quiesce() to resolve issues detected on > > > QC SC8280XP CRD board during suspend resume testing. > > > > > > This flushing did however trigger new issues on Raspberry Pi 3B+, which > > > doesn't have USB3 ports, and doesn't queue any post resume delayed work. > > > > > > The flushed 'hub->init_work' item is used for several purposes, and > > > is originally initialized with a 'NULL' work function. The work function > > > is also changed on the fly, which may contribute to the issue. > > > > > > Solve this by creating a dedicated delayed work item for post resume work, > > > and flush that delayed work in hub_quiesce() > > > > > > Cc: stable@kernel.org > > > Fixes: a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") > > > Reported-by: Mark Brown <broonie@kernel.org> > > > Closes: https://lore.kernel.org/linux-usb/aF5rNp1l0LWITnEB@finisterre.sirena.org.uk > > > Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> > > > --- > > > v3: > > > - Rebase on top of a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") > > > - Rewrite commit message > > > > > > v2: > > > - Add and use dedicated delayed work struct for post resume work > > > - Add commit message section about dedicated work > > > > This seems to work, want me to take this, or are you going to submit > > another one? I'll hold off on sending the pull request to Linus for > > -rc4 because of this. > > > > thanks, > > > > greg k-h > > Sorry about the response delay, was offline during weekend As one should be! :) > I'll do some quick additional smoketests, suspending and disconnecting runtime suspended > chained USB3 hubs. Shouldn't take more than a couple of hours Ok, no rush, thanks for letting me know. greg k-h ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes 2025-06-30 11:19 ` Greg KH @ 2025-06-30 13:15 ` Mathias Nyman 2025-06-30 13:36 ` Greg KH 0 siblings, 1 reply; 9+ messages in thread From: Mathias Nyman @ 2025-06-30 13:15 UTC (permalink / raw) To: Greg KH; +Cc: linux-usb, stern, oneukum, konrad.dybcio, broonie, stable On 30.6.2025 14.19, Greg KH wrote: > On Mon, Jun 30, 2025 at 01:07:29PM +0300, Mathias Nyman wrote: >> On 28.6.2025 17.46, Greg KH wrote: >>> On Fri, Jun 27, 2025 at 07:43:48PM +0300, Mathias Nyman wrote: >>>> Delayed work that prevents USB3 hubs from runtime-suspending too early >>>> needed to be flushed in hub_quiesce() to resolve issues detected on >>>> QC SC8280XP CRD board during suspend resume testing. >>>> >>>> This flushing did however trigger new issues on Raspberry Pi 3B+, which >>>> doesn't have USB3 ports, and doesn't queue any post resume delayed work. >>>> >>>> The flushed 'hub->init_work' item is used for several purposes, and >>>> is originally initialized with a 'NULL' work function. The work function >>>> is also changed on the fly, which may contribute to the issue. >>>> >>>> Solve this by creating a dedicated delayed work item for post resume work, >>>> and flush that delayed work in hub_quiesce() >>>> >>>> Cc: stable@kernel.org >>>> Fixes: a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") >>>> Reported-by: Mark Brown <broonie@kernel.org> >>>> Closes: https://lore.kernel.org/linux-usb/aF5rNp1l0LWITnEB@finisterre.sirena.org.uk >>>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> >>>> --- >>>> v3: >>>> - Rebase on top of a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") >>>> - Rewrite commit message >>>> >>>> v2: >>>> - Add and use dedicated delayed work struct for post resume work >>>> - Add commit message section about dedicated work >>> >>> This seems to work, want me to take this, or are you going to submit >>> another one? I'll hold off on sending the pull request to Linus for >>> -rc4 because of this. >>> >>> thanks, >>> >>> greg k-h >> >> Sorry about the response delay, was offline during weekend > > As one should be! :) > >> I'll do some quick additional smoketests, suspending and disconnecting runtime suspended >> chained USB3 hubs. Shouldn't take more than a couple of hours > > Ok, no rush, thanks for letting me know. > My additional smoktests passed as well. Can you pick this RFT PATCH v3 as it is? Or want a new one with all those "Tested-by" tags Thanks Mathias ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes 2025-06-30 13:15 ` Mathias Nyman @ 2025-06-30 13:36 ` Greg KH 0 siblings, 0 replies; 9+ messages in thread From: Greg KH @ 2025-06-30 13:36 UTC (permalink / raw) To: Mathias Nyman; +Cc: linux-usb, stern, oneukum, konrad.dybcio, broonie, stable On Mon, Jun 30, 2025 at 04:15:15PM +0300, Mathias Nyman wrote: > On 30.6.2025 14.19, Greg KH wrote: > > On Mon, Jun 30, 2025 at 01:07:29PM +0300, Mathias Nyman wrote: > > > On 28.6.2025 17.46, Greg KH wrote: > > > > On Fri, Jun 27, 2025 at 07:43:48PM +0300, Mathias Nyman wrote: > > > > > Delayed work that prevents USB3 hubs from runtime-suspending too early > > > > > needed to be flushed in hub_quiesce() to resolve issues detected on > > > > > QC SC8280XP CRD board during suspend resume testing. > > > > > > > > > > This flushing did however trigger new issues on Raspberry Pi 3B+, which > > > > > doesn't have USB3 ports, and doesn't queue any post resume delayed work. > > > > > > > > > > The flushed 'hub->init_work' item is used for several purposes, and > > > > > is originally initialized with a 'NULL' work function. The work function > > > > > is also changed on the fly, which may contribute to the issue. > > > > > > > > > > Solve this by creating a dedicated delayed work item for post resume work, > > > > > and flush that delayed work in hub_quiesce() > > > > > > > > > > Cc: stable@kernel.org > > > > > Fixes: a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") > > > > > Reported-by: Mark Brown <broonie@kernel.org> > > > > > Closes: https://lore.kernel.org/linux-usb/aF5rNp1l0LWITnEB@finisterre.sirena.org.uk > > > > > Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> > > > > > --- > > > > > v3: > > > > > - Rebase on top of a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm") > > > > > - Rewrite commit message > > > > > > > > > > v2: > > > > > - Add and use dedicated delayed work struct for post resume work > > > > > - Add commit message section about dedicated work > > > > > > > > This seems to work, want me to take this, or are you going to submit > > > > another one? I'll hold off on sending the pull request to Linus for > > > > -rc4 because of this. > > > > > > > > thanks, > > > > > > > > greg k-h > > > > > > Sorry about the response delay, was offline during weekend > > > > As one should be! :) > > > > > I'll do some quick additional smoketests, suspending and disconnecting runtime suspended > > > chained USB3 hubs. Shouldn't take more than a couple of hours > > > > Ok, no rush, thanks for letting me know. > > > > My additional smoktests passed as well. > > Can you pick this RFT PATCH v3 as it is? > Or want a new one with all those "Tested-by" tags I took it as-is, b4 grabbed the tested-by flags just fine. thanks! greg k-h ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-06-30 13:36 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-06-27 16:43 [RFT PATCH v3 0/1] Fix "detection of high tier USB3 devices" patch in usb-linus Mathias Nyman 2025-06-27 16:43 ` [RFT PATCH v3 1/1] usb: hub: Fix flushing of delayed work used for post resume purposes Mathias Nyman 2025-06-27 21:42 ` Mark Brown 2025-06-27 22:40 ` Konrad Dybcio 2025-06-28 14:46 ` Greg KH 2025-06-30 10:07 ` Mathias Nyman 2025-06-30 11:19 ` Greg KH 2025-06-30 13:15 ` Mathias Nyman 2025-06-30 13:36 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox