linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] clocksource: timer-ti-dm: Fix regression
@ 2020-01-06 20:37 Tony Lindgren
  2020-01-06 21:07 ` Olof Johansson
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Tony Lindgren @ 2020-01-06 20:37 UTC (permalink / raw)
  To: Daniel Lezcano, Thomas Gleixner
  Cc: linux-kernel, linux-omap, linux-arm-kernel, Yangtao Li

Clean-up commit 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to
platform_get_irq") caused a regression where we now try to access
uninitialized data for timer:

drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may be used
uninitialized in this function [-Wmaybe-uninitialized]

On boot we now get:

Unable to handle kernel NULL pointer dereference at virtual address
00000004
...
(omap_dm_timer_probe) from [<c061ac7c>] (platform_drv_probe+0x48/0x98)
(platform_drv_probe) from [<c0618c04>] (really_probe+0x1dc/0x348)
(really_probe) from [<c0618ef4>] (driver_probe_device+0x5c/0x160)

Let's fix the issue by moving platform_get_irq to happen after timer has
been allocated.

Fixes: 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to platform_get_irq")
Cc: Yangtao Li <tiny.windzz@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---

I did not notice simlar issue with other patches in the series, but
please do double check Yangtao.

---
 drivers/clocksource/timer-ti-dm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/clocksource/timer-ti-dm.c b/drivers/clocksource/timer-ti-dm.c
--- a/drivers/clocksource/timer-ti-dm.c
+++ b/drivers/clocksource/timer-ti-dm.c
@@ -795,14 +795,14 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 
-	timer->irq = platform_get_irq(pdev, 0);
-	if (timer->irq < 0)
-		return timer->irq;
-
 	timer = devm_kzalloc(dev, sizeof(*timer), GFP_KERNEL);
 	if (!timer)
 		return  -ENOMEM;
 
+	timer->irq = platform_get_irq(pdev, 0);
+	if (timer->irq < 0)
+		return timer->irq;
+
 	timer->fclk = ERR_PTR(-ENODEV);
 	timer->io_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(timer->io_base))
-- 
2.24.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] clocksource: timer-ti-dm: Fix regression
  2020-01-06 20:37 [PATCH] clocksource: timer-ti-dm: Fix regression Tony Lindgren
@ 2020-01-06 21:07 ` Olof Johansson
  2020-01-07 19:14   ` Frank Lee
  2020-01-09 11:42 ` Daniel Lezcano
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Olof Johansson @ 2020-01-06 21:07 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Daniel Lezcano, Thomas Gleixner, Linux Kernel Mailing List,
	linux-omap, Linux ARM Mailing List, Yangtao Li

On Mon, Jan 6, 2020 at 12:37 PM Tony Lindgren <tony@atomide.com> wrote:
>
> Clean-up commit 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to
> platform_get_irq") caused a regression where we now try to access
> uninitialized data for timer:
>
> drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
> drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may be used
> uninitialized in this function [-Wmaybe-uninitialized]
>
> On boot we now get:
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000004
> ...
> (omap_dm_timer_probe) from [<c061ac7c>] (platform_drv_probe+0x48/0x98)
> (platform_drv_probe) from [<c0618c04>] (really_probe+0x1dc/0x348)
> (really_probe) from [<c0618ef4>] (driver_probe_device+0x5c/0x160)
>
> Let's fix the issue by moving platform_get_irq to happen after timer has
> been allocated.
>
> Fixes: 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to platform_get_irq")
> Cc: Yangtao Li <tiny.windzz@gmail.com>
> Signed-off-by: Tony Lindgren <tony@atomide.com>

Acked-by: Olof Johansson <olof@lixom.net>

> ---
>
> I did not notice simlar issue with other patches in the series, but
> please do double check Yangtao.

Yeah, this even seems to be caught at build (but our builds have been
so noisy with warnings lately that they're hard to spot):

/build/drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
/build/drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may
be used uninitialized in this function [-Wmaybe-uninitialized]
  798 |  timer->irq = platform_get_irq(pdev, 0);
      |  ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~


-Olof

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] clocksource: timer-ti-dm: Fix regression
  2020-01-06 21:07 ` Olof Johansson
@ 2020-01-07 19:14   ` Frank Lee
  0 siblings, 0 replies; 8+ messages in thread
From: Frank Lee @ 2020-01-07 19:14 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Tony Lindgren, Daniel Lezcano, Thomas Gleixner,
	Linux Kernel Mailing List, linux-omap, Linux ARM Mailing List

On Tue, Jan 7, 2020 at 5:07 AM Olof Johansson <olof@lixom.net> wrote:
>
> On Mon, Jan 6, 2020 at 12:37 PM Tony Lindgren <tony@atomide.com> wrote:
> >
> > Clean-up commit 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to
> > platform_get_irq") caused a regression where we now try to access
> > uninitialized data for timer:
> >
> > drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
> > drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may be used
> > uninitialized in this function [-Wmaybe-uninitialized]
> >
> > On boot we now get:
> >
> > Unable to handle kernel NULL pointer dereference at virtual address
> > 00000004
> > ...
> > (omap_dm_timer_probe) from [<c061ac7c>] (platform_drv_probe+0x48/0x98)
> > (platform_drv_probe) from [<c0618c04>] (really_probe+0x1dc/0x348)
> > (really_probe) from [<c0618ef4>] (driver_probe_device+0x5c/0x160)
> >
> > Let's fix the issue by moving platform_get_irq to happen after timer has
> > been allocated.
> >
> > Fixes: 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to platform_get_irq")
> > Cc: Yangtao Li <tiny.windzz@gmail.com>
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
>
> Acked-by: Olof Johansson <olof@lixom.net>

Acked-by: Yangtao Li <tiny.windzz@gmail.com>

I am sorry. I will pay attention next time.

>
> > ---
> >
> > I did not notice simlar issue with other patches in the series, but
> > please do double check Yangtao.
>
> Yeah, this even seems to be caught at build (but our builds have been
> so noisy with warnings lately that they're hard to spot):
>
> /build/drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
> /build/drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may
> be used uninitialized in this function [-Wmaybe-uninitialized]
>   798 |  timer->irq = platform_get_irq(pdev, 0);
>       |  ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
> -Olof

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] clocksource: timer-ti-dm: Fix regression
  2020-01-06 20:37 [PATCH] clocksource: timer-ti-dm: Fix regression Tony Lindgren
  2020-01-06 21:07 ` Olof Johansson
@ 2020-01-09 11:42 ` Daniel Lezcano
  2020-01-11  6:28 ` Naresh Kamboju
  2020-01-16 21:31 ` [tip: timers/core] clocksource/drivers/timer-ti-dm: Fix uninitialized pointer access tip-bot2 for Tony Lindgren
  3 siblings, 0 replies; 8+ messages in thread
From: Daniel Lezcano @ 2020-01-09 11:42 UTC (permalink / raw)
  To: Tony Lindgren, Thomas Gleixner
  Cc: linux-kernel, linux-omap, linux-arm-kernel, Yangtao Li

On 06/01/2020 21:37, Tony Lindgren wrote:
> Clean-up commit 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to
> platform_get_irq") caused a regression where we now try to access
> uninitialized data for timer:
> 
> drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
> drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> 
> On boot we now get:
> 
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000004
> ...
> (omap_dm_timer_probe) from [<c061ac7c>] (platform_drv_probe+0x48/0x98)
> (platform_drv_probe) from [<c0618c04>] (really_probe+0x1dc/0x348)
> (really_probe) from [<c0618ef4>] (driver_probe_device+0x5c/0x160)
> 
> Let's fix the issue by moving platform_get_irq to happen after timer has
> been allocated.
> 
> Fixes: 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to platform_get_irq")
> Cc: Yangtao Li <tiny.windzz@gmail.com>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---

Applied, thanks.



-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] clocksource: timer-ti-dm: Fix regression
  2020-01-06 20:37 [PATCH] clocksource: timer-ti-dm: Fix regression Tony Lindgren
  2020-01-06 21:07 ` Olof Johansson
  2020-01-09 11:42 ` Daniel Lezcano
@ 2020-01-11  6:28 ` Naresh Kamboju
  2020-01-16  3:46   ` Keerthy
  2020-01-16 21:31 ` [tip: timers/core] clocksource/drivers/timer-ti-dm: Fix uninitialized pointer access tip-bot2 for Tony Lindgren
  3 siblings, 1 reply; 8+ messages in thread
From: Naresh Kamboju @ 2020-01-11  6:28 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Daniel Lezcano, Thomas Gleixner, open list, linux-omap,
	linux-arm-kernel, Yangtao Li

On Tue, 7 Jan 2020 at 02:07, Tony Lindgren <tony@atomide.com> wrote:
>
> Clean-up commit 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to
> platform_get_irq") caused a regression where we now try to access
> uninitialized data for timer:
>
> drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
> drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may be used
> uninitialized in this function [-Wmaybe-uninitialized]
>
> On boot we now get:
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000004
> ...
> (omap_dm_timer_probe) from [<c061ac7c>] (platform_drv_probe+0x48/0x98)
> (platform_drv_probe) from [<c0618c04>] (really_probe+0x1dc/0x348)
> (really_probe) from [<c0618ef4>] (driver_probe_device+0x5c/0x160)
>
> Let's fix the issue by moving platform_get_irq to happen after timer has
> been allocated.
>
> Fixes: 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to platform_get_irq")

Thanks for fixing this issue.
I have noticed arm BeagleBoard-X15 boot failed on linux next tree
(5.5.0-rc5-next-20200110).

[    6.157822] 8<--- cut here ---
[    6.160911] Unable to handle kernel NULL pointer dereference at
virtual address 00000004
[    6.169120] pgd = 25d83e32
[    6.171903] [00000004] *pgd=80000080204003, *pmd=00000000
[    6.177358] Internal error: Oops: a06 [#1] SMP ARM
[    6.182179] Modules linked in:
[    6.185260] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
5.5.0-rc5-next-20200110 #1
[    6.192694] Hardware name: Generic DRA74X (Flattened Device Tree)
[    6.198832] PC is at omap_dm_timer_probe+0x48/0x310

- Naresh

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] clocksource: timer-ti-dm: Fix regression
  2020-01-11  6:28 ` Naresh Kamboju
@ 2020-01-16  3:46   ` Keerthy
  2020-01-16 13:32     ` Daniel Lezcano
  0 siblings, 1 reply; 8+ messages in thread
From: Keerthy @ 2020-01-16  3:46 UTC (permalink / raw)
  To: Naresh Kamboju, Tony Lindgren
  Cc: Daniel Lezcano, Thomas Gleixner, open list, linux-omap,
	linux-arm-kernel, Yangtao Li



On 11/01/20 11:58 am, Naresh Kamboju wrote:
> On Tue, 7 Jan 2020 at 02:07, Tony Lindgren <tony@atomide.com> wrote:
>>
>> Clean-up commit 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to
>> platform_get_irq") caused a regression where we now try to access
>> uninitialized data for timer:
>>
>> drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
>> drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may be used
>> uninitialized in this function [-Wmaybe-uninitialized]
>>
>> On boot we now get:
>>
>> Unable to handle kernel NULL pointer dereference at virtual address
>> 00000004
>> ...
>> (omap_dm_timer_probe) from [<c061ac7c>] (platform_drv_probe+0x48/0x98)
>> (platform_drv_probe) from [<c0618c04>] (really_probe+0x1dc/0x348)
>> (really_probe) from [<c0618ef4>] (driver_probe_device+0x5c/0x160)
>>
>> Let's fix the issue by moving platform_get_irq to happen after timer has
>> been allocated.
>>
>> Fixes: 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to platform_get_irq")
> 
> Thanks for fixing this issue.
> I have noticed arm BeagleBoard-X15 boot failed on linux next tree
> (5.5.0-rc5-next-20200110).
> 
> [    6.157822] 8<--- cut here ---
> [    6.160911] Unable to handle kernel NULL pointer dereference at
> virtual address 00000004
> [    6.169120] pgd = 25d83e32
> [    6.171903] [00000004] *pgd=80000080204003, *pmd=00000000
> [    6.177358] Internal error: Oops: a06 [#1] SMP ARM
> [    6.182179] Modules linked in:
> [    6.185260] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
> 5.5.0-rc5-next-20200110 #1
> [    6.192694] Hardware name: Generic DRA74X (Flattened Device Tree)
> [    6.198832] PC is at omap_dm_timer_probe+0x48/0x310

Tony/Daniel,

This is still not in linux-next. Any idea when this will be pushed to 
linux-next branch?

- Keerthy
> 
> - Naresh
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] clocksource: timer-ti-dm: Fix regression
  2020-01-16  3:46   ` Keerthy
@ 2020-01-16 13:32     ` Daniel Lezcano
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Lezcano @ 2020-01-16 13:32 UTC (permalink / raw)
  To: Keerthy, Naresh Kamboju, Tony Lindgren
  Cc: Thomas Gleixner, open list, linux-omap, linux-arm-kernel, Yangtao Li

On 16/01/2020 04:46, Keerthy wrote:
> 
> 
> On 11/01/20 11:58 am, Naresh Kamboju wrote:
>> On Tue, 7 Jan 2020 at 02:07, Tony Lindgren <tony@atomide.com> wrote:
>>>
>>> Clean-up commit 8c82723414d5 ("clocksource/drivers/timer-ti-dm:
>>> Switch to
>>> platform_get_irq") caused a regression where we now try to access
>>> uninitialized data for timer:
>>>
>>> drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
>>> drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may be used
>>> uninitialized in this function [-Wmaybe-uninitialized]
>>>
>>> On boot we now get:
>>>
>>> Unable to handle kernel NULL pointer dereference at virtual address
>>> 00000004
>>> ...
>>> (omap_dm_timer_probe) from [<c061ac7c>] (platform_drv_probe+0x48/0x98)
>>> (platform_drv_probe) from [<c0618c04>] (really_probe+0x1dc/0x348)
>>> (really_probe) from [<c0618ef4>] (driver_probe_device+0x5c/0x160)
>>>
>>> Let's fix the issue by moving platform_get_irq to happen after timer has
>>> been allocated.
>>>
>>> Fixes: 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to
>>> platform_get_irq")
>>
>> Thanks for fixing this issue.
>> I have noticed arm BeagleBoard-X15 boot failed on linux next tree
>> (5.5.0-rc5-next-20200110).
>>
>> [    6.157822] 8<--- cut here ---
>> [    6.160911] Unable to handle kernel NULL pointer dereference at
>> virtual address 00000004
>> [    6.169120] pgd = 25d83e32
>> [    6.171903] [00000004] *pgd=80000080204003, *pmd=00000000
>> [    6.177358] Internal error: Oops: a06 [#1] SMP ARM
>> [    6.182179] Modules linked in:
>> [    6.185260] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
>> 5.5.0-rc5-next-20200110 #1
>> [    6.192694] Hardware name: Generic DRA74X (Flattened Device Tree)
>> [    6.198832] PC is at omap_dm_timer_probe+0x48/0x310
> 
> Tony/Daniel,
> 
> This is still not in linux-next. Any idea when this will be pushed to
> linux-next branch?

It should be actually.


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [tip: timers/core] clocksource/drivers/timer-ti-dm: Fix uninitialized pointer access
  2020-01-06 20:37 [PATCH] clocksource: timer-ti-dm: Fix regression Tony Lindgren
                   ` (2 preceding siblings ...)
  2020-01-11  6:28 ` Naresh Kamboju
@ 2020-01-16 21:31 ` tip-bot2 for Tony Lindgren
  3 siblings, 0 replies; 8+ messages in thread
From: tip-bot2 for Tony Lindgren @ 2020-01-16 21:31 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Yangtao Li, Tony Lindgren, Olof Johansson, Daniel Lezcano, x86, LKML

The following commit has been merged into the timers/core branch of tip:

Commit-ID:     4341067cfc20582195f47383cf059589b2641465
Gitweb:        https://git.kernel.org/tip/4341067cfc20582195f47383cf059589b2641465
Author:        Tony Lindgren <tony@atomide.com>
AuthorDate:    Mon, 06 Jan 2020 12:37:00 -08:00
Committer:     Daniel Lezcano <daniel.lezcano@linaro.org>
CommitterDate: Thu, 16 Jan 2020 19:09:02 +01:00

clocksource/drivers/timer-ti-dm: Fix uninitialized pointer access

Clean-up commit 8c82723414d5 ("clocksource/drivers/timer-ti-dm: Switch to
platform_get_irq") caused a regression where we now try to access
uninitialized data for timer:

drivers/clocksource/timer-ti-dm.c: In function 'omap_dm_timer_probe':
drivers/clocksource/timer-ti-dm.c:798:13: warning: 'timer' may be used
uninitialized in this function [-Wmaybe-uninitialized]

On boot we now get:

Unable to handle kernel NULL pointer dereference at virtual address
00000004
...
(omap_dm_timer_probe) from [<c061ac7c>] (platform_drv_probe+0x48/0x98)
(platform_drv_probe) from [<c0618c04>] (really_probe+0x1dc/0x348)
(really_probe) from [<c0618ef4>] (driver_probe_device+0x5c/0x160)

Let's fix the issue by moving platform_get_irq to happen after timer has
been allocated.

Fixes: bc83caddf17b ("clocksource/drivers/timer-ti-dm: Switch to platform_get_irq")
Cc: Yangtao Li <tiny.windzz@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Olof Johansson <olof@lixom.net>
Acked-by: Yangtao Li <tiny.windzz@gmail.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20200106203700.21009-1-tony@atomide.com
---
 drivers/clocksource/timer-ti-dm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/clocksource/timer-ti-dm.c b/drivers/clocksource/timer-ti-dm.c
index bd16efb..269a994 100644
--- a/drivers/clocksource/timer-ti-dm.c
+++ b/drivers/clocksource/timer-ti-dm.c
@@ -795,14 +795,14 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 
-	timer->irq = platform_get_irq(pdev, 0);
-	if (timer->irq < 0)
-		return timer->irq;
-
 	timer = devm_kzalloc(dev, sizeof(*timer), GFP_KERNEL);
 	if (!timer)
 		return  -ENOMEM;
 
+	timer->irq = platform_get_irq(pdev, 0);
+	if (timer->irq < 0)
+		return timer->irq;
+
 	timer->fclk = ERR_PTR(-ENODEV);
 	timer->io_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(timer->io_base))

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-01-16 21:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-06 20:37 [PATCH] clocksource: timer-ti-dm: Fix regression Tony Lindgren
2020-01-06 21:07 ` Olof Johansson
2020-01-07 19:14   ` Frank Lee
2020-01-09 11:42 ` Daniel Lezcano
2020-01-11  6:28 ` Naresh Kamboju
2020-01-16  3:46   ` Keerthy
2020-01-16 13:32     ` Daniel Lezcano
2020-01-16 21:31 ` [tip: timers/core] clocksource/drivers/timer-ti-dm: Fix uninitialized pointer access tip-bot2 for Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).