linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] Use spinlock_t instead of struct spinlock
@ 2019-07-04 15:37 Sebastian Andrzej Siewior
  2019-07-04 15:37 ` [PATCH 1/7] crypto: ux500: " Sebastian Andrzej Siewior
                   ` (7 more replies)
  0 siblings, 8 replies; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-04 15:37 UTC (permalink / raw)
  To: linux-kernel; +Cc: tglx, Peter Zijlstra

Just a small series to clean up various "struct spinlock" user and make
them use "spinlock_t" instead.

Sebastian



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

* [PATCH 1/7] crypto: ux500: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
@ 2019-07-04 15:37 ` Sebastian Andrzej Siewior
  2019-07-26 12:10   ` Thomas Gleixner
  2019-07-26 12:32   ` Herbert Xu
  2019-07-04 15:37 ` [PATCH 2/7] vmpressure: " Sebastian Andrzej Siewior
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-04 15:37 UTC (permalink / raw)
  To: linux-kernel
  Cc: tglx, Peter Zijlstra, Sebastian Andrzej Siewior, Herbert Xu,
	David S. Miller, linux-crypto

For spinlocks the type spinlock_t should be used instead of "struct
spinlock".

Use spinlock_t for spinlock's definition.

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-crypto@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/crypto/ux500/cryp/cryp.h     | 4 ++--
 drivers/crypto/ux500/hash/hash_alg.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/ux500/cryp/cryp.h b/drivers/crypto/ux500/cryp/cryp.h
index bd89504e81678..8da7f87b339b4 100644
--- a/drivers/crypto/ux500/cryp/cryp.h
+++ b/drivers/crypto/ux500/cryp/cryp.h
@@ -241,12 +241,12 @@ struct cryp_device_data {
 	struct clk *clk;
 	struct regulator *pwr_regulator;
 	int power_status;
-	struct spinlock ctx_lock;
+	spinlock_t ctx_lock;
 	struct cryp_ctx *current_ctx;
 	struct klist_node list_node;
 	struct cryp_dma dma;
 	bool power_state;
-	struct spinlock power_state_spinlock;
+	spinlock_t power_state_spinlock;
 	bool restore_dev_ctx;
 };
 
diff --git a/drivers/crypto/ux500/hash/hash_alg.h b/drivers/crypto/ux500/hash/hash_alg.h
index ab2bd00c1c365..7c9bcc15125ff 100644
--- a/drivers/crypto/ux500/hash/hash_alg.h
+++ b/drivers/crypto/ux500/hash/hash_alg.h
@@ -366,10 +366,10 @@ struct hash_device_data {
 	phys_addr_t             phybase;
 	struct klist_node	list_node;
 	struct device		*dev;
-	struct spinlock		ctx_lock;
+	spinlock_t		ctx_lock;
 	struct hash_ctx		*current_ctx;
 	bool			power_state;
-	struct spinlock		power_state_lock;
+	spinlock_t		power_state_lock;
 	struct regulator	*regulator;
 	struct clk		*clk;
 	bool			restore_dev_state;
-- 
2.20.1


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

* [PATCH 2/7] vmpressure: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
  2019-07-04 15:37 ` [PATCH 1/7] crypto: ux500: " Sebastian Andrzej Siewior
@ 2019-07-04 15:37 ` Sebastian Andrzej Siewior
  2019-07-26 12:09   ` Thomas Gleixner
  2019-07-04 15:37 ` [PATCH 3/7] drm/vgem: " Sebastian Andrzej Siewior
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-04 15:37 UTC (permalink / raw)
  To: linux-kernel
  Cc: tglx, Peter Zijlstra, Sebastian Andrzej Siewior, linux-mm, Andrew Morton

For spinlocks the type spinlock_t should be used instead of "struct
spinlock".

Use spinlock_t for spinlock's definition.

Cc: linux-mm@kvack.org
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 include/linux/vmpressure.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/vmpressure.h b/include/linux/vmpressure.h
index 61e6fddfb26fd..6d28bc433c1cf 100644
--- a/include/linux/vmpressure.h
+++ b/include/linux/vmpressure.h
@@ -17,7 +17,7 @@ struct vmpressure {
 	unsigned long tree_scanned;
 	unsigned long tree_reclaimed;
 	/* The lock is used to keep the scanned/reclaimed above in sync. */
-	struct spinlock sr_lock;
+	spinlock_t sr_lock;
 
 	/* The list of vmpressure_event structs. */
 	struct list_head events;
-- 
2.20.1


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

* [PATCH 3/7] drm/vgem: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
  2019-07-04 15:37 ` [PATCH 1/7] crypto: ux500: " Sebastian Andrzej Siewior
  2019-07-04 15:37 ` [PATCH 2/7] vmpressure: " Sebastian Andrzej Siewior
@ 2019-07-04 15:37 ` Sebastian Andrzej Siewior
  2019-07-04 15:38 ` [PATCH 4/7] staging: most: " Sebastian Andrzej Siewior
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-04 15:37 UTC (permalink / raw)
  To: linux-kernel
  Cc: tglx, Peter Zijlstra, Sebastian Andrzej Siewior, David Airlie,
	Daniel Vetter, dri-devel

For spinlocks the type spinlock_t should be used instead of "struct
spinlock".

Use spinlock_t for spinlock's definition.

Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/gpu/drm/vgem/vgem_fence.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c
index eb17c0cd3727a..4b0b7d61bac96 100644
--- a/drivers/gpu/drm/vgem/vgem_fence.c
+++ b/drivers/gpu/drm/vgem/vgem_fence.c
@@ -29,7 +29,7 @@
 
 struct vgem_fence {
 	struct dma_fence base;
-	struct spinlock lock;
+	spinlock_t lock;
 	struct timer_list timer;
 };
 
-- 
2.20.1


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

* [PATCH 4/7] staging: most: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
                   ` (2 preceding siblings ...)
  2019-07-04 15:37 ` [PATCH 3/7] drm/vgem: " Sebastian Andrzej Siewior
@ 2019-07-04 15:38 ` Sebastian Andrzej Siewior
  2019-07-06 10:02   ` Greg Kroah-Hartman
  2019-07-15 19:19   ` Greg Kroah-Hartman
  2019-07-04 15:38 ` [PATCH 5/7] watchdog: ie6xx_wdt: Use spinlock_t " Sebastian Andrzej Siewior
                   ` (3 subsequent siblings)
  7 siblings, 2 replies; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-04 15:38 UTC (permalink / raw)
  To: linux-kernel
  Cc: tglx, Peter Zijlstra, Sebastian Andrzej Siewior,
	Greg Kroah-Hartman, Christian Gromm, devel

For spinlocks the type spinlock_t should be used instead of "struct
spinlock".

Use spinlock_t for spinlock's definition.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Christian Gromm <christian.gromm@microchip.com>
Cc: devel@driverdev.osuosl.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/staging/most/net/net.c     | 3 +--
 drivers/staging/most/video/video.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/most/net/net.c b/drivers/staging/most/net/net.c
index c8a64e2090273..09b604df45e63 100644
--- a/drivers/staging/most/net/net.c
+++ b/drivers/staging/most/net/net.c
@@ -69,7 +69,7 @@ struct net_dev_context {
 
 static struct list_head net_devices = LIST_HEAD_INIT(net_devices);
 static struct mutex probe_disc_mt; /* ch->linked = true, most_nd_open */
-static struct spinlock list_lock; /* list_head, ch->linked = false, dev_hold */
+static DEFINE_SPINLOCK(list_lock); /* list_head, ch->linked = false, dev_hold */
 static struct core_component comp;
 
 static int skb_to_mamac(const struct sk_buff *skb, struct mbo *mbo)
@@ -507,7 +507,6 @@ static struct core_component comp = {
 
 static int __init most_net_init(void)
 {
-	spin_lock_init(&list_lock);
 	mutex_init(&probe_disc_mt);
 	return most_register_component(&comp);
 }
diff --git a/drivers/staging/most/video/video.c b/drivers/staging/most/video/video.c
index adca250062e1b..fcd9e111e8bd0 100644
--- a/drivers/staging/most/video/video.c
+++ b/drivers/staging/most/video/video.c
@@ -54,7 +54,7 @@ struct comp_fh {
 };
 
 static struct list_head video_devices = LIST_HEAD_INIT(video_devices);
-static struct spinlock list_lock;
+static DEFINE_SPINLOCK(list_lock);
 
 static inline bool data_ready(struct most_video_dev *mdev)
 {
@@ -540,7 +540,6 @@ static struct core_component comp = {
 
 static int __init comp_init(void)
 {
-	spin_lock_init(&list_lock);
 	return most_register_component(&comp);
 }
 
-- 
2.20.1


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

* [PATCH 5/7] watchdog: ie6xx_wdt: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
                   ` (3 preceding siblings ...)
  2019-07-04 15:38 ` [PATCH 4/7] staging: most: " Sebastian Andrzej Siewior
@ 2019-07-04 15:38 ` Sebastian Andrzej Siewior
  2019-07-08 17:55   ` Guenter Roeck
  2019-07-04 15:38 ` [PATCH 6/7] nfp: " Sebastian Andrzej Siewior
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-04 15:38 UTC (permalink / raw)
  To: linux-kernel
  Cc: tglx, Peter Zijlstra, Sebastian Andrzej Siewior,
	Wim Van Sebroeck, Guenter Roeck, linux-watchdog

For spinlocks the type spinlock_t should be used instead of "struct
spinlock".

Use spinlock_t for spinlock's definition.

Cc: Wim Van Sebroeck <wim@linux-watchdog.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: linux-watchdog@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/watchdog/ie6xx_wdt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/watchdog/ie6xx_wdt.c b/drivers/watchdog/ie6xx_wdt.c
index 508fbefce9f6a..82a8cf61efc2a 100644
--- a/drivers/watchdog/ie6xx_wdt.c
+++ b/drivers/watchdog/ie6xx_wdt.c
@@ -66,7 +66,7 @@ MODULE_PARM_DESC(resetmode,
 
 static struct {
 	unsigned short sch_wdtba;
-	struct spinlock unlock_sequence;
+	spinlock_t unlock_sequence;
 #ifdef CONFIG_DEBUG_FS
 	struct dentry *debugfs;
 #endif
-- 
2.20.1


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

* [PATCH 6/7] nfp: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
                   ` (4 preceding siblings ...)
  2019-07-04 15:38 ` [PATCH 5/7] watchdog: ie6xx_wdt: Use spinlock_t " Sebastian Andrzej Siewior
@ 2019-07-04 15:38 ` Sebastian Andrzej Siewior
  2019-07-04 20:42   ` Jakub Kicinski
  2019-07-05 23:18   ` David Miller
  2019-07-04 15:38 ` [PATCH 7/7] gpiolib: " Sebastian Andrzej Siewior
  2019-07-04 15:39 ` [PATCH 0/7] " David Laight
  7 siblings, 2 replies; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-04 15:38 UTC (permalink / raw)
  To: linux-kernel
  Cc: tglx, Peter Zijlstra, Sebastian Andrzej Siewior, Jakub Kicinski,
	David S. Miller, oss-drivers, netdev

For spinlocks the type spinlock_t should be used instead of "struct
spinlock".

Use spinlock_t for spinlock's definition.

Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: oss-drivers@netronome.com
Cc: netdev@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/net/ethernet/netronome/nfp/nfp_net.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net.h b/drivers/net/ethernet/netronome/nfp/nfp_net.h
index df9aff2684ed0..4690363fc5421 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net.h
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net.h
@@ -392,7 +392,7 @@ struct nfp_net_r_vector {
 		struct {
 			struct tasklet_struct tasklet;
 			struct sk_buff_head queue;
-			struct spinlock lock;
+			spinlock_t lock;
 		};
 	};
 
-- 
2.20.1


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

* [PATCH 7/7] gpiolib: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
                   ` (5 preceding siblings ...)
  2019-07-04 15:38 ` [PATCH 6/7] nfp: " Sebastian Andrzej Siewior
@ 2019-07-04 15:38 ` Sebastian Andrzej Siewior
  2019-07-05  9:33   ` Bartosz Golaszewski
  2019-07-06 18:15   ` Linus Walleij
  2019-07-04 15:39 ` [PATCH 0/7] " David Laight
  7 siblings, 2 replies; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-04 15:38 UTC (permalink / raw)
  To: linux-kernel
  Cc: tglx, Peter Zijlstra, Sebastian Andrzej Siewior, Linus Walleij,
	Bartosz Golaszewski, linux-gpio

For spinlocks the type spinlock_t should be used instead of "struct
spinlock".

Use spinlock_t for spinlock's definition.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/gpio/gpiolib.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h
index 7a65dad43932c..7c52c2442173e 100644
--- a/drivers/gpio/gpiolib.h
+++ b/drivers/gpio/gpiolib.h
@@ -210,7 +210,7 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep,
 				  struct gpio_array *array_info,
 				  unsigned long *value_bitmap);
 
-extern struct spinlock gpio_lock;
+extern spinlock_t gpio_lock;
 extern struct list_head gpio_devices;
 
 struct gpio_desc {
-- 
2.20.1


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

* RE: [PATCH 0/7] Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
                   ` (6 preceding siblings ...)
  2019-07-04 15:38 ` [PATCH 7/7] gpiolib: " Sebastian Andrzej Siewior
@ 2019-07-04 15:39 ` David Laight
  2019-07-04 15:45   ` 'Sebastian Andrzej Siewior'
  7 siblings, 1 reply; 24+ messages in thread
From: David Laight @ 2019-07-04 15:39 UTC (permalink / raw)
  To: 'Sebastian Andrzej Siewior', linux-kernel; +Cc: tglx, Peter Zijlstra

From:  Sebastian Andrzej Siewior
> Sent: 04 July 2019 16:38
> 
> Just a small series to clean up various "struct spinlock" user and make
> them use "spinlock_t" instead.

I thought it was policy to avoid typedefs?
Probably because you can only define them once.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)


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

* Re: [PATCH 0/7] Use spinlock_t instead of struct spinlock
  2019-07-04 15:39 ` [PATCH 0/7] " David Laight
@ 2019-07-04 15:45   ` 'Sebastian Andrzej Siewior'
  0 siblings, 0 replies; 24+ messages in thread
From: 'Sebastian Andrzej Siewior' @ 2019-07-04 15:45 UTC (permalink / raw)
  To: David Laight; +Cc: linux-kernel, tglx, Peter Zijlstra

On 2019-07-04 15:39:41 [+0000], David Laight wrote:
> I thought it was policy to avoid typedefs?
> Probably because you can only define them once.

We don't have many of them but we have them and should stick to them.

|$ git grep -A4 "spinlock de" scripts/
|scripts/checkpatch.pl:# check for struct spinlock declarations
|scripts/checkpatch.pl-          if ($line =~ /^.\s*\bstruct\s+spinlock\s+\w+\s*;/) {
|scripts/checkpatch.pl-                  WARN("USE_SPINLOCK_T",
|scripts/checkpatch.pl-                       "struct spinlock should be spinlock_t\n" . $herecurr);
|scripts/checkpatch.pl-          }

> 	David

Sebastian

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

* Re: [PATCH 6/7] nfp: Use spinlock_t instead of struct spinlock
  2019-07-04 15:38 ` [PATCH 6/7] nfp: " Sebastian Andrzej Siewior
@ 2019-07-04 20:42   ` Jakub Kicinski
  2019-07-05 23:18   ` David Miller
  1 sibling, 0 replies; 24+ messages in thread
From: Jakub Kicinski @ 2019-07-04 20:42 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: LKML, tglx, Peter Zijlstra, David S. Miller, OSS Drivers,
	Linux Netdev List

On Thu,  4 Jul 2019 17:38:02 +0200, Sebastian Andrzej Siewior wrote:
> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
>
> Use spinlock_t for spinlock's definition.
>
> Cc: Jakub Kicinski <jakub.kicinski@netronome.com>

Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>


> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: oss-drivers@netronome.com
> Cc: netdev@vger.kernel.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
>  drivers/net/ethernet/netronome/nfp/nfp_net.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net.h b/drivers/net/ethernet/netronome/nfp/nfp_net.h
> index df9aff2684ed0..4690363fc5421 100644
> --- a/drivers/net/ethernet/netronome/nfp/nfp_net.h
> +++ b/drivers/net/ethernet/netronome/nfp/nfp_net.h
> @@ -392,7 +392,7 @@ struct nfp_net_r_vector {
>               struct {
>                       struct tasklet_struct tasklet;
>                       struct sk_buff_head queue;
> -                     struct spinlock lock;
> +                     spinlock_t lock;
>               };
>       };
>

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

* Re: [PATCH 7/7] gpiolib: Use spinlock_t instead of struct spinlock
  2019-07-04 15:38 ` [PATCH 7/7] gpiolib: " Sebastian Andrzej Siewior
@ 2019-07-05  9:33   ` Bartosz Golaszewski
  2019-07-06 18:15   ` Linus Walleij
  1 sibling, 0 replies; 24+ messages in thread
From: Bartosz Golaszewski @ 2019-07-05  9:33 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: LKML, Thomas Gleixner, Peter Zijlstra, Linus Walleij, linux-gpio

czw., 4 lip 2019 o 17:38 Sebastian Andrzej Siewior
<bigeasy@linutronix.de> napisał(a):
>
> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
>
> Use spinlock_t for spinlock's definition.
>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Cc: linux-gpio@vger.kernel.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
>  drivers/gpio/gpiolib.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h
> index 7a65dad43932c..7c52c2442173e 100644
> --- a/drivers/gpio/gpiolib.h
> +++ b/drivers/gpio/gpiolib.h
> @@ -210,7 +210,7 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep,
>                                   struct gpio_array *array_info,
>                                   unsigned long *value_bitmap);
>
> -extern struct spinlock gpio_lock;
> +extern spinlock_t gpio_lock;
>  extern struct list_head gpio_devices;
>
>  struct gpio_desc {
> --
> 2.20.1
>

Thanks for spotting that!

Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>

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

* Re: [PATCH 6/7] nfp: Use spinlock_t instead of struct spinlock
  2019-07-04 15:38 ` [PATCH 6/7] nfp: " Sebastian Andrzej Siewior
  2019-07-04 20:42   ` Jakub Kicinski
@ 2019-07-05 23:18   ` David Miller
  1 sibling, 0 replies; 24+ messages in thread
From: David Miller @ 2019-07-05 23:18 UTC (permalink / raw)
  To: bigeasy; +Cc: linux-kernel, tglx, peterz, jakub.kicinski, oss-drivers, netdev

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu,  4 Jul 2019 17:38:02 +0200

> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
> 
> Use spinlock_t for spinlock's definition.
> 
> Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: oss-drivers@netronome.com
> Cc: netdev@vger.kernel.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

Applied to net-next, thanks.

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

* Re: [PATCH 4/7] staging: most: Use spinlock_t instead of struct spinlock
  2019-07-04 15:38 ` [PATCH 4/7] staging: most: " Sebastian Andrzej Siewior
@ 2019-07-06 10:02   ` Greg Kroah-Hartman
  2019-07-06 21:35     ` Sebastian Andrzej Siewior
  2019-07-15 19:19   ` Greg Kroah-Hartman
  1 sibling, 1 reply; 24+ messages in thread
From: Greg Kroah-Hartman @ 2019-07-06 10:02 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: linux-kernel, devel, Peter Zijlstra, Christian Gromm, tglx

On Thu, Jul 04, 2019 at 05:38:00PM +0200, Sebastian Andrzej Siewior wrote:
> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".

Why?

> Use spinlock_t for spinlock's definition.

Why?  I agree it makes the code smaller, but why is this required?

thanks,

greg k-h

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

* Re: [PATCH 7/7] gpiolib: Use spinlock_t instead of struct spinlock
  2019-07-04 15:38 ` [PATCH 7/7] gpiolib: " Sebastian Andrzej Siewior
  2019-07-05  9:33   ` Bartosz Golaszewski
@ 2019-07-06 18:15   ` Linus Walleij
  1 sibling, 0 replies; 24+ messages in thread
From: Linus Walleij @ 2019-07-06 18:15 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra,
	Bartosz Golaszewski, open list:GPIO SUBSYSTEM

On Thu, Jul 4, 2019 at 5:38 PM Sebastian Andrzej Siewior
<bigeasy@linutronix.de> wrote:

> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
>
> Use spinlock_t for spinlock's definition.
>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Cc: linux-gpio@vger.kernel.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

Patch applied with Bartosz' ACK!

Yours,
Linus Walleij

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

* Re: [PATCH 4/7] staging: most: Use spinlock_t instead of struct spinlock
  2019-07-06 10:02   ` Greg Kroah-Hartman
@ 2019-07-06 21:35     ` Sebastian Andrzej Siewior
  0 siblings, 0 replies; 24+ messages in thread
From: Sebastian Andrzej Siewior @ 2019-07-06 21:35 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, devel, Peter Zijlstra, Christian Gromm, tglx

On 2019-07-06 12:02:53 [+0200], Greg Kroah-Hartman wrote:
> On Thu, Jul 04, 2019 at 05:38:00PM +0200, Sebastian Andrzej Siewior wrote:
> > For spinlocks the type spinlock_t should be used instead of "struct
> > spinlock".
> 
> Why?
> 
> > Use spinlock_t for spinlock's definition.
> 
> Why?  I agree it makes the code smaller, but why is this required?

I remember PeterZ pointing out to stick to the typedef and it is
probably better to stick with the typdef since we have it. It was like
that since it was first introduced (2.1.25 for i386).
We have a checkpatch warning for that [0]. 

This series has only 7 patches (excluding the powerpc bits) so almost
everyone else is using just the typdef.

[0] 88982fea52d01 ("checkpatch: warn when declaring "struct spinlock foo;"")
    from Dec 2012

> thanks,
> 
> greg k-h

Sebastian

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

* Re: [PATCH 5/7] watchdog: ie6xx_wdt: Use spinlock_t instead of struct spinlock
  2019-07-04 15:38 ` [PATCH 5/7] watchdog: ie6xx_wdt: Use spinlock_t " Sebastian Andrzej Siewior
@ 2019-07-08 17:55   ` Guenter Roeck
  0 siblings, 0 replies; 24+ messages in thread
From: Guenter Roeck @ 2019-07-08 17:55 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: linux-kernel, tglx, Peter Zijlstra, Wim Van Sebroeck, linux-watchdog

On Thu, Jul 04, 2019 at 05:38:01PM +0200, Sebastian Andrzej Siewior wrote:
> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
> 
> Use spinlock_t for spinlock's definition.
> 
> Cc: Wim Van Sebroeck <wim@linux-watchdog.org>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: linux-watchdog@vger.kernel.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>  drivers/watchdog/ie6xx_wdt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/ie6xx_wdt.c b/drivers/watchdog/ie6xx_wdt.c
> index 508fbefce9f6a..82a8cf61efc2a 100644
> --- a/drivers/watchdog/ie6xx_wdt.c
> +++ b/drivers/watchdog/ie6xx_wdt.c
> @@ -66,7 +66,7 @@ MODULE_PARM_DESC(resetmode,
>  
>  static struct {
>  	unsigned short sch_wdtba;
> -	struct spinlock unlock_sequence;
> +	spinlock_t unlock_sequence;
>  #ifdef CONFIG_DEBUG_FS
>  	struct dentry *debugfs;
>  #endif

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

* Re: [PATCH 4/7] staging: most: Use spinlock_t instead of struct spinlock
  2019-07-04 15:38 ` [PATCH 4/7] staging: most: " Sebastian Andrzej Siewior
  2019-07-06 10:02   ` Greg Kroah-Hartman
@ 2019-07-15 19:19   ` Greg Kroah-Hartman
  2019-07-26 11:22     ` [PATCH v2] staging: most: Use DEFINE_SPINLOCK() " Thomas Gleixner
  1 sibling, 1 reply; 24+ messages in thread
From: Greg Kroah-Hartman @ 2019-07-15 19:19 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: linux-kernel, devel, Peter Zijlstra, Christian Gromm, tglx

On Thu, Jul 04, 2019 at 05:38:00PM +0200, Sebastian Andrzej Siewior wrote:
> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
> 
> Use spinlock_t for spinlock's definition.
> 
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Christian Gromm <christian.gromm@microchip.com>
> Cc: devel@driverdev.osuosl.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
>  drivers/staging/most/net/net.c     | 3 +--
>  drivers/staging/most/video/video.c | 3 +--
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/staging/most/net/net.c b/drivers/staging/most/net/net.c
> index c8a64e2090273..09b604df45e63 100644
> --- a/drivers/staging/most/net/net.c
> +++ b/drivers/staging/most/net/net.c
> @@ -69,7 +69,7 @@ struct net_dev_context {
>  
>  static struct list_head net_devices = LIST_HEAD_INIT(net_devices);
>  static struct mutex probe_disc_mt; /* ch->linked = true, most_nd_open */
> -static struct spinlock list_lock; /* list_head, ch->linked = false, dev_hold */
> +static DEFINE_SPINLOCK(list_lock); /* list_head, ch->linked = false, dev_hold */
>  static struct core_component comp;
>  
>  static int skb_to_mamac(const struct sk_buff *skb, struct mbo *mbo)
> @@ -507,7 +507,6 @@ static struct core_component comp = {
>  
>  static int __init most_net_init(void)
>  {
> -	spin_lock_init(&list_lock);
>  	mutex_init(&probe_disc_mt);
>  	return most_register_component(&comp);
>  }
> diff --git a/drivers/staging/most/video/video.c b/drivers/staging/most/video/video.c
> index adca250062e1b..fcd9e111e8bd0 100644
> --- a/drivers/staging/most/video/video.c
> +++ b/drivers/staging/most/video/video.c
> @@ -54,7 +54,7 @@ struct comp_fh {
>  };
>  
>  static struct list_head video_devices = LIST_HEAD_INIT(video_devices);
> -static struct spinlock list_lock;
> +static DEFINE_SPINLOCK(list_lock);
>  
>  static inline bool data_ready(struct most_video_dev *mdev)
>  {
> @@ -540,7 +540,6 @@ static struct core_component comp = {
>  
>  static int __init comp_init(void)
>  {
> -	spin_lock_init(&list_lock);
>  	return most_register_component(&comp);
>  }
>  

Does not apply on top of Linus's tree right now :(

Can you rebase and resend once 5.3-rc1 is out?

thanks,

greg k-h

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

* [PATCH v2] staging: most: Use DEFINE_SPINLOCK() instead of struct spinlock
  2019-07-15 19:19   ` Greg Kroah-Hartman
@ 2019-07-26 11:22     ` Thomas Gleixner
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Gleixner @ 2019-07-26 11:22 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sebastian Andrzej Siewior, linux-kernel, devel, Peter Zijlstra,
	Christian Gromm

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

For spinlocks the type spinlock_t should be used instead of "struct
spinlock".

Use DEFINE_SPINLOCK() and spare the run time initialization

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20190704153803.12739-5-bigeasy@linutronix.de
---
V2: Rebase on 5.3-rc1. Massaged change log
---
 drivers/staging/most/net/net.c     |    3 +--
 drivers/staging/most/video/video.c |    3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

--- a/drivers/staging/most/net/net.c
+++ b/drivers/staging/most/net/net.c
@@ -69,7 +69,7 @@ struct net_dev_context {
 
 static struct list_head net_devices = LIST_HEAD_INIT(net_devices);
 static struct mutex probe_disc_mt; /* ch->linked = true, most_nd_open */
-static struct spinlock list_lock; /* list_head, ch->linked = false, dev_hold */
+static DEFINE_SPINLOCK(list_lock); /* list_head, ch->linked = false, dev_hold */
 static struct core_component comp;
 
 static int skb_to_mamac(const struct sk_buff *skb, struct mbo *mbo)
@@ -509,7 +509,6 @@ static int __init most_net_init(void)
 {
 	int err;
 
-	spin_lock_init(&list_lock);
 	mutex_init(&probe_disc_mt);
 	err = most_register_component(&comp);
 	if (err)
--- a/drivers/staging/most/video/video.c
+++ b/drivers/staging/most/video/video.c
@@ -54,7 +54,7 @@ struct comp_fh {
 };
 
 static struct list_head video_devices = LIST_HEAD_INIT(video_devices);
-static struct spinlock list_lock;
+static DEFINE_SPINLOCK(list_lock);
 
 static inline bool data_ready(struct most_video_dev *mdev)
 {
@@ -538,7 +538,6 @@ static int __init comp_init(void)
 {
 	int err;
 
-	spin_lock_init(&list_lock);
 	err = most_register_component(&comp);
 	if (err)
 		return err;

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

* Re: [PATCH 2/7] vmpressure: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 ` [PATCH 2/7] vmpressure: " Sebastian Andrzej Siewior
@ 2019-07-26 12:09   ` Thomas Gleixner
  2019-07-26 22:50     ` Andrew Morton
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Gleixner @ 2019-07-26 12:09 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: linux-kernel, Peter Zijlstra, linux-mm, Andrew Morton

On Thu, 4 Jul 2019, Sebastian Andrzej Siewior wrote:

Polite reminder ...

> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
> 
> Use spinlock_t for spinlock's definition.
> 
> Cc: linux-mm@kvack.org
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
>  include/linux/vmpressure.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/vmpressure.h b/include/linux/vmpressure.h
> index 61e6fddfb26fd..6d28bc433c1cf 100644
> --- a/include/linux/vmpressure.h
> +++ b/include/linux/vmpressure.h
> @@ -17,7 +17,7 @@ struct vmpressure {
>  	unsigned long tree_scanned;
>  	unsigned long tree_reclaimed;
>  	/* The lock is used to keep the scanned/reclaimed above in sync. */
> -	struct spinlock sr_lock;
> +	spinlock_t sr_lock;
>  
>  	/* The list of vmpressure_event structs. */
>  	struct list_head events;
> -- 
> 2.20.1
> 
> 

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

* Re: [PATCH 1/7] crypto: ux500: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 ` [PATCH 1/7] crypto: ux500: " Sebastian Andrzej Siewior
@ 2019-07-26 12:10   ` Thomas Gleixner
  2019-07-26 12:32   ` Herbert Xu
  1 sibling, 0 replies; 24+ messages in thread
From: Thomas Gleixner @ 2019-07-26 12:10 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: linux-kernel, Peter Zijlstra, Herbert Xu, David S. Miller, linux-crypto

On Thu, 4 Jul 2019, Sebastian Andrzej Siewior wrote:

Polite reminder...

> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
> 
> Use spinlock_t for spinlock's definition.
> 
> Cc: Herbert Xu <herbert@gondor.apana.org.au>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: linux-crypto@vger.kernel.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
>  drivers/crypto/ux500/cryp/cryp.h     | 4 ++--
>  drivers/crypto/ux500/hash/hash_alg.h | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/crypto/ux500/cryp/cryp.h b/drivers/crypto/ux500/cryp/cryp.h
> index bd89504e81678..8da7f87b339b4 100644
> --- a/drivers/crypto/ux500/cryp/cryp.h
> +++ b/drivers/crypto/ux500/cryp/cryp.h
> @@ -241,12 +241,12 @@ struct cryp_device_data {
>  	struct clk *clk;
>  	struct regulator *pwr_regulator;
>  	int power_status;
> -	struct spinlock ctx_lock;
> +	spinlock_t ctx_lock;
>  	struct cryp_ctx *current_ctx;
>  	struct klist_node list_node;
>  	struct cryp_dma dma;
>  	bool power_state;
> -	struct spinlock power_state_spinlock;
> +	spinlock_t power_state_spinlock;
>  	bool restore_dev_ctx;
>  };
>  
> diff --git a/drivers/crypto/ux500/hash/hash_alg.h b/drivers/crypto/ux500/hash/hash_alg.h
> index ab2bd00c1c365..7c9bcc15125ff 100644
> --- a/drivers/crypto/ux500/hash/hash_alg.h
> +++ b/drivers/crypto/ux500/hash/hash_alg.h
> @@ -366,10 +366,10 @@ struct hash_device_data {
>  	phys_addr_t             phybase;
>  	struct klist_node	list_node;
>  	struct device		*dev;
> -	struct spinlock		ctx_lock;
> +	spinlock_t		ctx_lock;
>  	struct hash_ctx		*current_ctx;
>  	bool			power_state;
> -	struct spinlock		power_state_lock;
> +	spinlock_t		power_state_lock;
>  	struct regulator	*regulator;
>  	struct clk		*clk;
>  	bool			restore_dev_state;
> -- 
> 2.20.1
> 
> 

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

* Re: [PATCH 1/7] crypto: ux500: Use spinlock_t instead of struct spinlock
  2019-07-04 15:37 ` [PATCH 1/7] crypto: ux500: " Sebastian Andrzej Siewior
  2019-07-26 12:10   ` Thomas Gleixner
@ 2019-07-26 12:32   ` Herbert Xu
  1 sibling, 0 replies; 24+ messages in thread
From: Herbert Xu @ 2019-07-26 12:32 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: linux-kernel, tglx, peterz, bigeasy, davem, linux-crypto

Sebastian Andrzej Siewior <bigeasy@linutronix.de> wrote:
> For spinlocks the type spinlock_t should be used instead of "struct
> spinlock".
> 
> Use spinlock_t for spinlock's definition.
> 
> Cc: Herbert Xu <herbert@gondor.apana.org.au>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: linux-crypto@vger.kernel.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
> drivers/crypto/ux500/cryp/cryp.h     | 4 ++--
> drivers/crypto/ux500/hash/hash_alg.h | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

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

* Re: [PATCH 2/7] vmpressure: Use spinlock_t instead of struct spinlock
  2019-07-26 12:09   ` Thomas Gleixner
@ 2019-07-26 22:50     ` Andrew Morton
  2019-07-27  6:13       ` Thomas Gleixner
  0 siblings, 1 reply; 24+ messages in thread
From: Andrew Morton @ 2019-07-26 22:50 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Sebastian Andrzej Siewior, linux-kernel, Peter Zijlstra, linux-mm

On Fri, 26 Jul 2019 14:09:50 +0200 (CEST) Thomas Gleixner <tglx@linutronix.de> wrote:

> On Thu, 4 Jul 2019, Sebastian Andrzej Siewior wrote:
> 
> Polite reminder ...

Already upstream!


commit 51b176290496518d6701bc40e63f70e4b6870198
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Thu Jul 11 20:54:52 2019 -0700

    include/linux/vmpressure.h: use spinlock_t instead of struct spinlock

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

* Re: [PATCH 2/7] vmpressure: Use spinlock_t instead of struct spinlock
  2019-07-26 22:50     ` Andrew Morton
@ 2019-07-27  6:13       ` Thomas Gleixner
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Gleixner @ 2019-07-27  6:13 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Sebastian Andrzej Siewior, linux-kernel, Peter Zijlstra, linux-mm

On Fri, 26 Jul 2019, Andrew Morton wrote:
> On Fri, 26 Jul 2019 14:09:50 +0200 (CEST) Thomas Gleixner <tglx@linutronix.de> wrote:
> 
> > On Thu, 4 Jul 2019, Sebastian Andrzej Siewior wrote:
> > 
> > Polite reminder ...
> 
> Already upstream!

Ooops.

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

end of thread, other threads:[~2019-07-27  6:13 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-04 15:37 [PATCH 0/7] Use spinlock_t instead of struct spinlock Sebastian Andrzej Siewior
2019-07-04 15:37 ` [PATCH 1/7] crypto: ux500: " Sebastian Andrzej Siewior
2019-07-26 12:10   ` Thomas Gleixner
2019-07-26 12:32   ` Herbert Xu
2019-07-04 15:37 ` [PATCH 2/7] vmpressure: " Sebastian Andrzej Siewior
2019-07-26 12:09   ` Thomas Gleixner
2019-07-26 22:50     ` Andrew Morton
2019-07-27  6:13       ` Thomas Gleixner
2019-07-04 15:37 ` [PATCH 3/7] drm/vgem: " Sebastian Andrzej Siewior
2019-07-04 15:38 ` [PATCH 4/7] staging: most: " Sebastian Andrzej Siewior
2019-07-06 10:02   ` Greg Kroah-Hartman
2019-07-06 21:35     ` Sebastian Andrzej Siewior
2019-07-15 19:19   ` Greg Kroah-Hartman
2019-07-26 11:22     ` [PATCH v2] staging: most: Use DEFINE_SPINLOCK() " Thomas Gleixner
2019-07-04 15:38 ` [PATCH 5/7] watchdog: ie6xx_wdt: Use spinlock_t " Sebastian Andrzej Siewior
2019-07-08 17:55   ` Guenter Roeck
2019-07-04 15:38 ` [PATCH 6/7] nfp: " Sebastian Andrzej Siewior
2019-07-04 20:42   ` Jakub Kicinski
2019-07-05 23:18   ` David Miller
2019-07-04 15:38 ` [PATCH 7/7] gpiolib: " Sebastian Andrzej Siewior
2019-07-05  9:33   ` Bartosz Golaszewski
2019-07-06 18:15   ` Linus Walleij
2019-07-04 15:39 ` [PATCH 0/7] " David Laight
2019-07-04 15:45   ` 'Sebastian Andrzej Siewior'

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).