* [PATCH] of: add const to struct of_device_id.data @ 2012-04-23 8:56 Uwe Kleine-König [not found] ` <1335171381-24869-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: Uwe Kleine-König @ 2012-04-23 8:56 UTC (permalink / raw) To: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Arnd Bergmann Cc: kernel-bIcnvbaLZ9MEGnE8C9+IrQ Drivers should never need to modify the data of a device id. So it can be const which in turn allows more consts in the driver. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- Hello, this might introduce warnings in drivers that access the data member without using const, so this is definitly merge window material if it is considered at all. Best regards Uwe include/linux/mod_devicetable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 501da4c..183f411 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -222,7 +222,7 @@ struct of_device_id char type[32]; char compatible[128]; #ifdef __KERNEL__ - void *data; + const void *data; #else kernel_ulong_t data; #endif -- 1.7.10 _______________________________________________ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss ^ permalink raw reply related [flat|nested] 10+ messages in thread
[parent not found: <1335171381-24869-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH] of: add const to struct of_device_id.data [not found] ` <1335171381-24869-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2012-05-18 14:43 ` Uwe Kleine-König 2012-05-21 19:49 ` [PATCH] spi/imx: make devtype_data member point to const data Uwe Kleine-König 2012-05-21 19:54 ` [PATCH] ARM: cache-l2x0: add a const qualifier Uwe Kleine-König 2 siblings, 0 replies; 10+ messages in thread From: Uwe Kleine-König @ 2012-05-18 14:43 UTC (permalink / raw) To: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Arnd Bergmann Cc: kernel-bIcnvbaLZ9MEGnE8C9+IrQ Hello, On Mon, Apr 23, 2012 at 10:56:21AM +0200, Uwe Kleine-König wrote: > Drivers should never need to modify the data of a device id. So it can > be const which in turn allows more consts in the driver. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> > --- > this might introduce warnings in drivers that access the data member > without using const, so this is definitly merge window material if it is > considered at all. > > include/linux/mod_devicetable.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h > index 501da4c..183f411 100644 > --- a/include/linux/mod_devicetable.h > +++ b/include/linux/mod_devicetable.h > @@ -222,7 +222,7 @@ struct of_device_id > char type[32]; > char compatible[128]; > #ifdef __KERNEL__ > - void *data; > + const void *data; > #else > kernel_ulong_t data; > #endif any thoughts on this one? I got no feed back and it doesn't appear in next-20120518. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] spi/imx: make devtype_data member point to const data [not found] ` <1335171381-24869-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2012-05-18 14:43 ` Uwe Kleine-König @ 2012-05-21 19:49 ` Uwe Kleine-König [not found] ` <1337629775-9166-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2012-05-21 19:54 ` [PATCH] ARM: cache-l2x0: add a const qualifier Uwe Kleine-König 2 siblings, 1 reply; 10+ messages in thread From: Uwe Kleine-König @ 2012-05-21 19:49 UTC (permalink / raw) To: Grant Likely Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Arnd Bergmann, kernel-bIcnvbaLZ9MEGnE8C9+IrQ This is only cosmetic for now. In case that http://mid.gmane.org/1335171381-24869-1-git-send-email-u.kleine-koenig@pengutronix.de will be applied, it fixes a warning drivers/spi/spi-imx.c: In function spi_imx_probe: drivers/spi/spi-imx.c:814:24: warning: assignment discards const qualifier from pointer target type [enabled by default] though. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- drivers/spi/spi-imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index 570f220..37b3a26 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c @@ -95,7 +95,7 @@ struct spi_imx_data { const void *tx_buf; unsigned int txfifo; /* number of words pushed in tx FIFO */ - struct spi_imx_devtype_data *devtype_data; + const struct spi_imx_devtype_data *devtype_data; int chipselect[0]; }; -- 1.7.10 ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general ^ permalink raw reply related [flat|nested] 10+ messages in thread
[parent not found: <1337629775-9166-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH] spi/imx: make devtype_data member point to const data [not found] ` <1337629775-9166-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2012-06-22 5:50 ` Uwe Kleine-König 0 siblings, 0 replies; 10+ messages in thread From: Uwe Kleine-König @ 2012-06-22 5:50 UTC (permalink / raw) To: Grant Likely Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Arnd Bergmann, kernel-bIcnvbaLZ9MEGnE8C9+IrQ Hi Grant, On Mon, May 21, 2012 at 09:49:35PM +0200, Uwe Kleine-König wrote: > This is only cosmetic for now. In case that > > http://mid.gmane.org/1335171381-24869-1-git-send-email-u.kleine-koenig@pengutronix.de > > will be applied, it fixes a warning > > drivers/spi/spi-imx.c: In function spi_imx_probe: > drivers/spi/spi-imx.c:814:24: warning: assignment discards const qualifier from pointer target type [enabled by default] > > though. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> ping Best regards Uwe > --- > drivers/spi/spi-imx.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c > index 570f220..37b3a26 100644 > --- a/drivers/spi/spi-imx.c > +++ b/drivers/spi/spi-imx.c > @@ -95,7 +95,7 @@ struct spi_imx_data { > const void *tx_buf; > unsigned int txfifo; /* number of words pushed in tx FIFO */ > > - struct spi_imx_devtype_data *devtype_data; > + const struct spi_imx_devtype_data *devtype_data; > int chipselect[0]; > }; > > -- > 1.7.10 > > -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] ARM: cache-l2x0: add a const qualifier [not found] ` <1335171381-24869-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2012-05-18 14:43 ` Uwe Kleine-König 2012-05-21 19:49 ` [PATCH] spi/imx: make devtype_data member point to const data Uwe Kleine-König @ 2012-05-21 19:54 ` Uwe Kleine-König 2 siblings, 0 replies; 10+ messages in thread From: Uwe Kleine-König @ 2012-05-21 19:54 UTC (permalink / raw) To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ This is only cosmetic for now. In case that http://mid.gmane.org/1335171381-24869-1-git-send-email-u.kleine-koenig@pengutronix.de will be applied, it fixes a warning arch/arm/mm/cache-l2x0.c: In function 'l2x0_of_init': arch/arm/mm/cache-l2x0.c:573:7: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] though. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- arch/arm/mm/cache-l2x0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 2a8e380..577baf7 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -554,7 +554,7 @@ static const struct of_device_id l2x0_ids[] __initconst = { int __init l2x0_of_init(u32 aux_val, u32 aux_mask) { struct device_node *np; - struct l2x0_of_data *data; + const struct l2x0_of_data *data; struct resource res; np = of_find_matching_node(NULL, l2x0_ids); -- 1.7.10 _______________________________________________ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH] serial/imx: make devdata member point to const data 2012-04-23 8:56 [PATCH] of: add const to struct of_device_id.data Uwe Kleine-König [not found] ` <1335171381-24869-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2012-05-21 19:57 ` Uwe Kleine-König 2012-06-07 10:20 ` [PATCH RESEND] of: add const to struct of_device_id.data Uwe Kleine-König 2 siblings, 0 replies; 10+ messages in thread From: Uwe Kleine-König @ 2012-05-21 19:57 UTC (permalink / raw) To: Alan Cox, Greg Kroah-Hartman Cc: kernel, linux-serial, devicetree-discuss, Arnd Bergmann This is only cosmetic for now. In case that http://mid.gmane.org/1335171381-24869-1-git-send-email-u.kleine-koenig@pengutronix.de will be applied, it fixes a warning drivers/tty/serial/imx.c: In function 'serial_imx_probe_dt': drivers/tty/serial/imx.c:1430:17: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] though. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- drivers/tty/serial/imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index e7fecee..d409bbb 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c @@ -205,7 +205,7 @@ struct imx_port { unsigned int irda_inv_tx:1; unsigned short trcv_delay; /* transceiver delay */ struct clk *clk; - struct imx_uart_data *devdata; + const struct imx_uart_data *devdata; }; struct imx_port_ucrs { -- 1.7.10 -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH RESEND] of: add const to struct of_device_id.data 2012-04-23 8:56 [PATCH] of: add const to struct of_device_id.data Uwe Kleine-König [not found] ` <1335171381-24869-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2012-05-21 19:57 ` [PATCH] serial/imx: make devdata member point to const data Uwe Kleine-König @ 2012-06-07 10:20 ` Uwe Kleine-König 2012-06-22 5:56 ` Uwe Kleine-König 2 siblings, 1 reply; 10+ messages in thread From: Uwe Kleine-König @ 2012-06-07 10:20 UTC (permalink / raw) To: devicetree-discuss, Arnd Bergmann, linux-kernel, Grant Likely; +Cc: kernel Drivers should never need to modify the data of a device id. So it can be const which in turn allows more consts in the driver. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- (Cc += lkml + Grant) Hello, this might introduce warnings in drivers that access the data member without using const, so this is definitly merge window material if it is considered at all. Best regards Uwe include/linux/mod_devicetable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 501da4c..183f411 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -222,7 +222,7 @@ struct of_device_id char type[32]; char compatible[128]; #ifdef __KERNEL__ - void *data; + const void *data; #else kernel_ulong_t data; #endif -- 1.7.10 -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH RESEND] of: add const to struct of_device_id.data 2012-06-07 10:20 ` [PATCH RESEND] of: add const to struct of_device_id.data Uwe Kleine-König @ 2012-06-22 5:56 ` Uwe Kleine-König 2012-06-22 17:26 ` Arnd Bergmann 0 siblings, 1 reply; 10+ messages in thread From: Uwe Kleine-König @ 2012-06-22 5:56 UTC (permalink / raw) To: devicetree-discuss, Arnd Bergmann, linux-kernel, Grant Likely; +Cc: kernel On Thu, Jun 07, 2012 at 12:20:14PM +0200, Uwe Kleine-König wrote: > Drivers should never need to modify the data of a device id. So it can > be const which in turn allows more consts in the driver. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > --- > (Cc += lkml + Grant) > > Hello, > > this might introduce warnings in drivers that access the data member > without using const, so this is definitly merge window material if it is > considered at all. ping Best regards Uwe > include/linux/mod_devicetable.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h > index 501da4c..183f411 100644 > --- a/include/linux/mod_devicetable.h > +++ b/include/linux/mod_devicetable.h > @@ -222,7 +222,7 @@ struct of_device_id > char type[32]; > char compatible[128]; > #ifdef __KERNEL__ > - void *data; > + const void *data; > #else > kernel_ulong_t data; > #endif > -- > 1.7.10 > > > > -- > Pengutronix e.K. | Uwe Kleine-König | > Industrial Linux Solutions | http://www.pengutronix.de/ | > -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RESEND] of: add const to struct of_device_id.data 2012-06-22 5:56 ` Uwe Kleine-König @ 2012-06-22 17:26 ` Arnd Bergmann 2012-06-24 14:43 ` Uwe Kleine-König 0 siblings, 1 reply; 10+ messages in thread From: Arnd Bergmann @ 2012-06-22 17:26 UTC (permalink / raw) To: Uwe Kleine-König Cc: devicetree-discuss, linux-kernel, Grant Likely, kernel On Friday 22 June 2012, Uwe Kleine-König wrote: > On Thu, Jun 07, 2012 at 12:20:14PM +0200, Uwe Kleine-König wrote: > > Drivers should never need to modify the data of a device id. So it can > > be const which in turn allows more consts in the driver. > > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > --- > > (Cc += lkml + Grant) > > > > Hello, > > > > this might introduce warnings in drivers that access the data member > > without using const, so this is definitly merge window material if it is > > considered at all. > > ping Sorry for the delayed response. I think the approach is right, but I am a bit worried about adding warnings for legit code. A quick test with the defconfigs gave me this error for prima2_defconfig and kzm9g_defconfig: /home/arnd/linux-arm/arch/arm/mm/cache-l2x0.c: In function 'l2x0_of_init': /home/arnd/linux-arm/arch/arm/mm/cache-l2x0.c:573:7: error: assignment discards 'const' qualifier from pointer target type [-Werror] and this one with at91sam9263_defconfig: /home/arnd/linux-arm/drivers/misc/atmel_tclib.c: In function 'tc_probe': /home/arnd/linux-arm/drivers/misc/atmel_tclib.c:170:19: error: assignment discards 'const' qualifier from pointer target type [-Werror] I haven't checked all the defconfigs yet, but I think we should at least make sure they build fine before applying your patch. Arnd 8<--- diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 2a8e380..577baf7 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -554,7 +554,7 @@ static const struct of_device_id l2x0_ids[] __initconst = { int __init l2x0_of_init(u32 aux_val, u32 aux_mask) { struct device_node *np; - struct l2x0_of_data *data; + const struct l2x0_of_data *data; struct resource res; np = of_find_matching_node(NULL, l2x0_ids); diff --git a/include/linux/atmel_tc.h b/include/linux/atmel_tc.h index 1d14b1dc..89a931b 100644 --- a/include/linux/atmel_tc.h +++ b/include/linux/atmel_tc.h @@ -63,7 +63,7 @@ struct atmel_tc { struct platform_device *pdev; struct resource *iomem; void __iomem *regs; - struct atmel_tcb_config *tcb_config; + const struct atmel_tcb_config *tcb_config; int irq[3]; struct clk *clk[3]; struct list_head node; ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH RESEND] of: add const to struct of_device_id.data 2012-06-22 17:26 ` Arnd Bergmann @ 2012-06-24 14:43 ` Uwe Kleine-König 0 siblings, 0 replies; 10+ messages in thread From: Uwe Kleine-König @ 2012-06-24 14:43 UTC (permalink / raw) To: Arnd Bergmann Cc: devicetree-discuss, linux-kernel, Grant Likely, kernel, Russell King - ARM Linux Hello Arnd, On Fri, Jun 22, 2012 at 05:26:22PM +0000, Arnd Bergmann wrote: > On Friday 22 June 2012, Uwe Kleine-König wrote: > > On Thu, Jun 07, 2012 at 12:20:14PM +0200, Uwe Kleine-König wrote: > > > Drivers should never need to modify the data of a device id. So it can > > > be const which in turn allows more consts in the driver. > > > > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > > --- > > > (Cc += lkml + Grant) > > > > > > Hello, > > > > > > this might introduce warnings in drivers that access the data member > > > without using const, so this is definitly merge window material if it is > > > considered at all. > > > > ping > > Sorry for the delayed response. I think the approach is right, but I > am a bit worried about adding warnings for legit code. > > A quick test with the defconfigs gave me this error for prima2_defconfig > and kzm9g_defconfig: > > /home/arnd/linux-arm/arch/arm/mm/cache-l2x0.c: In function 'l2x0_of_init': > /home/arnd/linux-arm/arch/arm/mm/cache-l2x0.c:573:7: error: assignment discards 'const' qualifier from pointer target type [-Werror] I already sent a patch for that to rmk's patch system: http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7429/1 Russell commented: Sigh, a gmane.org URL. Which is difficult to dig the thread out of. Eventually you can. And I see nothing which suggests that the series will be applied or, more importantly when it is going to be applied. Punting this patch until there's better communication. Russell, I didn't completely get your problem about gmane here. If you follow the link in the Subject: line, you get a thread view. Does this address your concerns? And even without the of: add const to struct of_device_id.data patch patch using more consts is IMHO nice. > and this one with at91sam9263_defconfig: > /home/arnd/linux-arm/drivers/misc/atmel_tclib.c: In function 'tc_probe': > /home/arnd/linux-arm/drivers/misc/atmel_tclib.c:170:19: error: assignment discards 'const' qualifier from pointer target type [-Werror] > > I haven't checked all the defconfigs yet, but I think we should at least > make sure they build fine before applying your patch. Fine for me, I will come up with a series next week. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2012-06-24 14:43 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-04-23 8:56 [PATCH] of: add const to struct of_device_id.data Uwe Kleine-König [not found] ` <1335171381-24869-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2012-05-18 14:43 ` Uwe Kleine-König 2012-05-21 19:49 ` [PATCH] spi/imx: make devtype_data member point to const data Uwe Kleine-König [not found] ` <1337629775-9166-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2012-06-22 5:50 ` Uwe Kleine-König 2012-05-21 19:54 ` [PATCH] ARM: cache-l2x0: add a const qualifier Uwe Kleine-König 2012-05-21 19:57 ` [PATCH] serial/imx: make devdata member point to const data Uwe Kleine-König 2012-06-07 10:20 ` [PATCH RESEND] of: add const to struct of_device_id.data Uwe Kleine-König 2012-06-22 5:56 ` Uwe Kleine-König 2012-06-22 17:26 ` Arnd Bergmann 2012-06-24 14:43 ` Uwe Kleine-König
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).