linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arend van Spriel <arend@broadcom.com>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
Cc: <rusty@rustcorp.com.au>, <linux-kernel@vger.kernel.org>,
	<linux-wireless@vger.kernel.org>, <keescook@chromium.org>,
	<casey@schaufler-ca.com>, <cocci@systeme.lip6.fr>,
	Junio C Hamano <gitster@pobox.com>,
	Jani Nikula <jani.nikula@intel.com>,
	Christoph Hellwig <hch@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	Hannes Reinecke <hare@suse.de>, "Tejun Heo" <tj@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	"Luis R. Rodriguez" <mcgrof@suse.com>
Subject: Re: [PATCH v1 0/6] module params: few simplifications
Date: Tue, 21 Apr 2015 12:20:10 +0200	[thread overview]
Message-ID: <5536245A.3090106@broadcom.com> (raw)
In-Reply-To: <1429572637-30234-2-git-send-email-mcgrof@do-not-panic.com>

On 04/21/15 01:30, Luis R. Rodriguez wrote:

Suspect the subject line is screwed up here and should have been "[PATCH 
v1 1/6] ....".

Regards,
Arend

> Most code already uses consts for the struct kernel_param_ops,
> sweep the kernel for the last offending stragglers. Other than
> include/linux/moduleparam.h and kernel/params.c all other changes
> were generated with the following Coccinelle SmPL patch. Merge
> conflicts between trees can be handled with Coccinelle.
>
> In the future git could get Coccinelle merge support to deal with
> patch -->  fail -->  grammar -->  Coccinelle -->  new patch conflicts
> automatically for us on patches where the grammar is available and
> the patch is of high confidence. Consider this a feature request.
>
> Test compiled on x86_64 against:
>
>    * allnoconfig
>    * allmodconfig
>    * allyesconfig
>
> @ const_found @
> identifier ops;
> @@
>
> const struct kernel_param_ops ops = {
> };
>
> @ const_not_found depends on !const_found @
> identifier ops;
> @@
>
> -struct kernel_param_ops ops = {
> +const struct kernel_param_ops ops = {
> };
>
> Generated-by: Coccinelle SmPL
> Cc: cocci@systeme.lip6.fr
> Cc: Rusty Russell<rusty@rustcorp.com.au>
> Cc: Junio C Hamano<gitster@pobox.com>
> Cc: Jani Nikula<jani.nikula@intel.com>
> Cc: Christoph Hellwig<hch@infradead.org>
> Cc: Andrew Morton<akpm@linux-foundation.org>
> Cc: Geert Uytterhoeven<geert@linux-m68k.org>
> Cc: Hannes Reinecke<hare@suse.de>
> Cc: Kees Cook<keescook@chromium.org>
> Cc: Tejun Heo<tj@kernel.org>
> Cc: Ingo Molnar<mingo@kernel.org>
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Luis R. Rodriguez<mcgrof@suse.com>
> ---
>   arch/s390/kernel/perf_cpum_sf.c         |  2 +-
>   arch/x86/kvm/mmu_audit.c                |  2 +-
>   arch/x86/platform/uv/uv_nmi.c           |  2 +-
>   drivers/block/null_blk.c                |  4 ++--
>   drivers/char/ipmi/ipmi_watchdog.c       |  6 +++---
>   drivers/dma/dmatest.c                   |  4 ++--
>   drivers/ide/ide.c                       |  2 +-
>   drivers/infiniband/ulp/srp/ib_srp.c     |  4 ++--
>   drivers/input/misc/ati_remote2.c        |  4 ++--
>   drivers/input/mouse/psmouse-base.c      |  2 +-
>   drivers/misc/lis3lv02d/lis3lv02d.c      |  2 +-
>   drivers/mtd/ubi/block.c                 |  2 +-
>   drivers/net/wireless/ath/wil6210/main.c |  4 ++--
>   drivers/power/test_power.c              | 16 ++++++++--------
>   drivers/thermal/intel_powerclamp.c      |  4 ++--
>   drivers/tty/hvc/hvc_iucv.c              |  2 +-
>   drivers/tty/sysrq.c                     |  2 +-
>   drivers/video/fbdev/uvesafb.c           |  2 +-
>   drivers/virtio/virtio_mmio.c            |  2 +-
>   fs/nfs/super.c                          |  2 +-
>   include/linux/moduleparam.h             | 30 +++++++++++++++---------------
>   kernel/params.c                         | 14 +++++++-------
>   net/sunrpc/auth.c                       |  2 +-
>   net/sunrpc/xprtsock.c                   |  6 +++---
>   security/apparmor/lsm.c                 |  6 +++---
>   security/integrity/ima/ima_crypto.c     |  2 +-
>   sound/pci/hda/hda_intel.c               |  2 +-
>   27 files changed, 66 insertions(+), 66 deletions(-)
>
> diff --git a/arch/s390/kernel/perf_cpum_sf.c b/arch/s390/kernel/perf_cpum_sf.c
> index e6a1578..afe05bf 100644
> --- a/arch/s390/kernel/perf_cpum_sf.c
> +++ b/arch/s390/kernel/perf_cpum_sf.c
> @@ -1572,7 +1572,7 @@ static int param_set_sfb_size(const char *val, const struct kernel_param *kp)
>   }
>
>   #define param_check_sfb_size(name, p) __param_check(name, p, void)
> -static struct kernel_param_ops param_ops_sfb_size = {
> +static const struct kernel_param_ops param_ops_sfb_size = {
>   	.set = param_set_sfb_size,
>   	.get = param_get_sfb_size,
>   };
> diff --git a/arch/x86/kvm/mmu_audit.c b/arch/x86/kvm/mmu_audit.c
> index 9ade5cf..87393e3 100644
> --- a/arch/x86/kvm/mmu_audit.c
> +++ b/arch/x86/kvm/mmu_audit.c
> @@ -291,7 +291,7 @@ static int mmu_audit_set(const char *val, const struct kernel_param *kp)
>   	return 0;
>   }
>
> -static struct kernel_param_ops audit_param_ops = {
> +static const struct kernel_param_ops audit_param_ops = {
>   	.set = mmu_audit_set,
>   	.get = param_get_bool,
>   };
> diff --git a/arch/x86/platform/uv/uv_nmi.c b/arch/x86/platform/uv/uv_nmi.c
> index 7488caf..020c101 100644
> --- a/arch/x86/platform/uv/uv_nmi.c
> +++ b/arch/x86/platform/uv/uv_nmi.c
> @@ -104,7 +104,7 @@ static int param_set_local64(const char *val, const struct kernel_param *kp)
>   	return 0;
>   }
>
> -static struct kernel_param_ops param_ops_local64 = {
> +static const struct kernel_param_ops param_ops_local64 = {
>   	.get = param_get_local64,
>   	.set = param_set_local64,
>   };
> diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c
> index 65cd61a..0b4b256 100644
> --- a/drivers/block/null_blk.c
> +++ b/drivers/block/null_blk.c
> @@ -99,7 +99,7 @@ static int null_set_queue_mode(const char *str, const struct kernel_param *kp)
>   	return null_param_store_val(str,&queue_mode, NULL_Q_BIO, NULL_Q_MQ);
>   }
>
> -static struct kernel_param_ops null_queue_mode_param_ops = {
> +static const struct kernel_param_ops null_queue_mode_param_ops = {
>   	.set	= null_set_queue_mode,
>   	.get	= param_get_int,
>   };
> @@ -127,7 +127,7 @@ static int null_set_irqmode(const char *str, const struct kernel_param *kp)
>   					NULL_IRQ_TIMER);
>   }
>
> -static struct kernel_param_ops null_irqmode_param_ops = {
> +static const struct kernel_param_ops null_irqmode_param_ops = {
>   	.set	= null_set_irqmode,
>   	.get	= param_get_int,
>   };
> diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c
> index 37b8be7..0ac3bd1 100644
> --- a/drivers/char/ipmi/ipmi_watchdog.c
> +++ b/drivers/char/ipmi/ipmi_watchdog.c
> @@ -208,7 +208,7 @@ static int set_param_timeout(const char *val, const struct kernel_param *kp)
>   	return rv;
>   }
>
> -static struct kernel_param_ops param_ops_timeout = {
> +static const struct kernel_param_ops param_ops_timeout = {
>   	.set = set_param_timeout,
>   	.get = param_get_int,
>   };
> @@ -270,14 +270,14 @@ static int set_param_wdog_ifnum(const char *val, const struct kernel_param *kp)
>   	return 0;
>   }
>
> -static struct kernel_param_ops param_ops_wdog_ifnum = {
> +static const struct kernel_param_ops param_ops_wdog_ifnum = {
>   	.set = set_param_wdog_ifnum,
>   	.get = param_get_int,
>   };
>
>   #define param_check_wdog_ifnum param_check_int
>
> -static struct kernel_param_ops param_ops_str = {
> +static const struct kernel_param_ops param_ops_str = {
>   	.set = set_param_str,
>   	.get = get_param_str,
>   };
> diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
> index 220ee49..b8576fd 100644
> --- a/drivers/dma/dmatest.c
> +++ b/drivers/dma/dmatest.c
> @@ -120,7 +120,7 @@ static struct dmatest_info {
>
>   static int dmatest_run_set(const char *val, const struct kernel_param *kp);
>   static int dmatest_run_get(char *val, const struct kernel_param *kp);
> -static struct kernel_param_ops run_ops = {
> +static const struct kernel_param_ops run_ops = {
>   	.set = dmatest_run_set,
>   	.get = dmatest_run_get,
>   };
> @@ -195,7 +195,7 @@ static int dmatest_wait_get(char *val, const struct kernel_param *kp)
>   	return param_get_bool(val, kp);
>   }
>
> -static struct kernel_param_ops wait_ops = {
> +static const struct kernel_param_ops wait_ops = {
>   	.get = dmatest_wait_get,
>   	.set = param_set_bool,
>   };
> diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
> index e29b02c..f086ef3 100644
> --- a/drivers/ide/ide.c
> +++ b/drivers/ide/ide.c
> @@ -199,7 +199,7 @@ static int ide_set_dev_param_mask(const char *s, const struct kernel_param *kp)
>   	return 0;
>   }
>
> -static struct kernel_param_ops param_ops_ide_dev_mask = {
> +static const struct kernel_param_ops param_ops_ide_dev_mask = {
>   	.set = ide_set_dev_param_mask
>   };
>
> diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
> index 918814c..e4eec9d 100644
> --- a/drivers/infiniband/ulp/srp/ib_srp.c
> +++ b/drivers/infiniband/ulp/srp/ib_srp.c
> @@ -98,7 +98,7 @@ module_param(register_always, bool, 0444);
>   MODULE_PARM_DESC(register_always,
>   		 "Use memory registration even for contiguous memory regions");
>
> -static struct kernel_param_ops srp_tmo_ops;
> +static const struct kernel_param_ops srp_tmo_ops;
>
>   static int srp_reconnect_delay = 10;
>   module_param_cb(reconnect_delay,&srp_tmo_ops,&srp_reconnect_delay,
> @@ -183,7 +183,7 @@ out:
>   	return res;
>   }
>
> -static struct kernel_param_ops srp_tmo_ops = {
> +static const struct kernel_param_ops srp_tmo_ops = {
>   	.get = srp_tmo_get,
>   	.set = srp_tmo_set,
>   };
> diff --git a/drivers/input/misc/ati_remote2.c b/drivers/input/misc/ati_remote2.c
> index f63341f..cfd58e8 100644
> --- a/drivers/input/misc/ati_remote2.c
> +++ b/drivers/input/misc/ati_remote2.c
> @@ -94,7 +94,7 @@ static int ati_remote2_get_mode_mask(char *buffer,
>
>   static unsigned int channel_mask = ATI_REMOTE2_MAX_CHANNEL_MASK;
>   #define param_check_channel_mask(name, p) __param_check(name, p, unsigned int)
> -static struct kernel_param_ops param_ops_channel_mask = {
> +static const struct kernel_param_ops param_ops_channel_mask = {
>   	.set = ati_remote2_set_channel_mask,
>   	.get = ati_remote2_get_channel_mask,
>   };
> @@ -103,7 +103,7 @@ MODULE_PARM_DESC(channel_mask, "Bitmask of channels to accept<15:Channel16>...<
>
>   static unsigned int mode_mask = ATI_REMOTE2_MAX_MODE_MASK;
>   #define param_check_mode_mask(name, p) __param_check(name, p, unsigned int)
> -static struct kernel_param_ops param_ops_mode_mask = {
> +static const struct kernel_param_ops param_ops_mode_mask = {
>   	.set = ati_remote2_set_mode_mask,
>   	.get = ati_remote2_get_mode_mask,
>   };
> diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
> index 5bb1658..f8286b6 100644
> --- a/drivers/input/mouse/psmouse-base.c
> +++ b/drivers/input/mouse/psmouse-base.c
> @@ -47,7 +47,7 @@ MODULE_LICENSE("GPL");
>   static unsigned int psmouse_max_proto = PSMOUSE_AUTO;
>   static int psmouse_set_maxproto(const char *val, const struct kernel_param *);
>   static int psmouse_get_maxproto(char *buffer, const struct kernel_param *kp);
> -static struct kernel_param_ops param_ops_proto_abbrev = {
> +static const struct kernel_param_ops param_ops_proto_abbrev = {
>   	.set = psmouse_set_maxproto,
>   	.get = psmouse_get_maxproto,
>   };
> diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
> index 4739689..fb8705f 100644
> --- a/drivers/misc/lis3lv02d/lis3lv02d.c
> +++ b/drivers/misc/lis3lv02d/lis3lv02d.c
> @@ -115,7 +115,7 @@ static int param_set_axis(const char *val, const struct kernel_param *kp)
>   	return ret;
>   }
>
> -static struct kernel_param_ops param_ops_axis = {
> +static const struct kernel_param_ops param_ops_axis = {
>   	.set = param_set_axis,
>   	.get = param_get_int,
>   };
> diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
> index db2c05b..5d2751b 100644
> --- a/drivers/mtd/ubi/block.c
> +++ b/drivers/mtd/ubi/block.c
> @@ -161,7 +161,7 @@ static int __init ubiblock_set_param(const char *val,
>   	return 0;
>   }
>
> -static struct kernel_param_ops ubiblock_param_ops = {
> +static const struct kernel_param_ops ubiblock_param_ops = {
>   	.set    = ubiblock_set_param,
>   };
>   module_param_cb(block,&ubiblock_param_ops, NULL, 0);
> diff --git a/drivers/net/wireless/ath/wil6210/main.c b/drivers/net/wireless/ath/wil6210/main.c
> index c2a2384..790c3df 100644
> --- a/drivers/net/wireless/ath/wil6210/main.c
> +++ b/drivers/net/wireless/ath/wil6210/main.c
> @@ -58,7 +58,7 @@ static int mtu_max_set(const char *val, const struct kernel_param *kp)
>   	return ret;
>   }
>
> -static struct kernel_param_ops mtu_max_ops = {
> +static const struct kernel_param_ops mtu_max_ops = {
>   	.set = mtu_max_set,
>   	.get = param_get_uint,
>   };
> @@ -87,7 +87,7 @@ static int ring_order_set(const char *val, const struct kernel_param *kp)
>   	return 0;
>   }
>
> -static struct kernel_param_ops ring_order_ops = {
> +static const struct kernel_param_ops ring_order_ops = {
>   	.set = ring_order_set,
>   	.get = param_get_uint,
>   };
> diff --git a/drivers/power/test_power.c b/drivers/power/test_power.c
> index f986e0c..83c42ea 100644
> --- a/drivers/power/test_power.c
> +++ b/drivers/power/test_power.c
> @@ -448,42 +448,42 @@ static int param_set_battery_voltage(const char *key,
>
>   #define param_get_battery_voltage param_get_int
>
> -static struct kernel_param_ops param_ops_ac_online = {
> +static const struct kernel_param_ops param_ops_ac_online = {
>   	.set = param_set_ac_online,
>   	.get = param_get_ac_online,
>   };
>
> -static struct kernel_param_ops param_ops_usb_online = {
> +static const struct kernel_param_ops param_ops_usb_online = {
>   	.set = param_set_usb_online,
>   	.get = param_get_usb_online,
>   };
>
> -static struct kernel_param_ops param_ops_battery_status = {
> +static const struct kernel_param_ops param_ops_battery_status = {
>   	.set = param_set_battery_status,
>   	.get = param_get_battery_status,
>   };
>
> -static struct kernel_param_ops param_ops_battery_present = {
> +static const struct kernel_param_ops param_ops_battery_present = {
>   	.set = param_set_battery_present,
>   	.get = param_get_battery_present,
>   };
>
> -static struct kernel_param_ops param_ops_battery_technology = {
> +static const struct kernel_param_ops param_ops_battery_technology = {
>   	.set = param_set_battery_technology,
>   	.get = param_get_battery_technology,
>   };
>
> -static struct kernel_param_ops param_ops_battery_health = {
> +static const struct kernel_param_ops param_ops_battery_health = {
>   	.set = param_set_battery_health,
>   	.get = param_get_battery_health,
>   };
>
> -static struct kernel_param_ops param_ops_battery_capacity = {
> +static const struct kernel_param_ops param_ops_battery_capacity = {
>   	.set = param_set_battery_capacity,
>   	.get = param_get_battery_capacity,
>   };
>
> -static struct kernel_param_ops param_ops_battery_voltage = {
> +static const struct kernel_param_ops param_ops_battery_voltage = {
>   	.set = param_set_battery_voltage,
>   	.get = param_get_battery_voltage,
>   };
> diff --git a/drivers/thermal/intel_powerclamp.c b/drivers/thermal/intel_powerclamp.c
> index 9b02d19..a6c840e 100644
> --- a/drivers/thermal/intel_powerclamp.c
> +++ b/drivers/thermal/intel_powerclamp.c
> @@ -119,7 +119,7 @@ exit:
>   	return ret;
>   }
>
> -static struct kernel_param_ops duration_ops = {
> +static const struct kernel_param_ops duration_ops = {
>   	.set = duration_set,
>   	.get = param_get_int,
>   };
> @@ -167,7 +167,7 @@ exit_win:
>   	return ret;
>   }
>
> -static struct kernel_param_ops window_size_ops = {
> +static const struct kernel_param_ops window_size_ops = {
>   	.set = window_size_set,
>   	.get = param_get_int,
>   };
> diff --git a/drivers/tty/hvc/hvc_iucv.c b/drivers/tty/hvc/hvc_iucv.c
> index f78a87b..bb809cf 100644
> --- a/drivers/tty/hvc/hvc_iucv.c
> +++ b/drivers/tty/hvc/hvc_iucv.c
> @@ -1345,7 +1345,7 @@ static int param_get_vmidfilter(char *buffer, const struct kernel_param *kp)
>
>   #define param_check_vmidfilter(name, p) __param_check(name, p, void)
>
> -static struct kernel_param_ops param_ops_vmidfilter = {
> +static const struct kernel_param_ops param_ops_vmidfilter = {
>   	.set = param_set_vmidfilter,
>   	.get = param_get_vmidfilter,
>   };
> diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
> index 843f2cd..03b02c3 100644
> --- a/drivers/tty/sysrq.c
> +++ b/drivers/tty/sysrq.c
> @@ -1002,7 +1002,7 @@ static int sysrq_reset_seq_param_set(const char *buffer,
>   	return 0;
>   }
>
> -static struct kernel_param_ops param_ops_sysrq_reset_seq = {
> +static const struct kernel_param_ops param_ops_sysrq_reset_seq = {
>   	.get	= param_get_ushort,
>   	.set	= sysrq_reset_seq_param_set,
>   };
> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
> index d32d1c4..178ae93 100644
> --- a/drivers/video/fbdev/uvesafb.c
> +++ b/drivers/video/fbdev/uvesafb.c
> @@ -1977,7 +1977,7 @@ static int param_set_scroll(const char *val, const struct kernel_param *kp)
>
>   	return 0;
>   }
> -static struct kernel_param_ops param_ops_scroll = {
> +static const struct kernel_param_ops param_ops_scroll = {
>   	.set = param_set_scroll,
>   };
>   #define param_check_scroll(name, p) __param_check(name, p, void)
> diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
> index 7a5e60d..10189b5 100644
> --- a/drivers/virtio/virtio_mmio.c
> +++ b/drivers/virtio/virtio_mmio.c
> @@ -691,7 +691,7 @@ static int vm_cmdline_get(char *buffer, const struct kernel_param *kp)
>   	return strlen(buffer) + 1;
>   }
>
> -static struct kernel_param_ops vm_cmdline_param_ops = {
> +static const struct kernel_param_ops vm_cmdline_param_ops = {
>   	.set = vm_cmdline_set,
>   	.get = vm_cmdline_get,
>   };
> diff --git a/fs/nfs/super.c b/fs/nfs/super.c
> index 21f8f52..3081bba 100644
> --- a/fs/nfs/super.c
> +++ b/fs/nfs/super.c
> @@ -2849,7 +2849,7 @@ static int param_set_portnr(const char *val, const struct kernel_param *kp)
>   	*((unsigned int *)kp->arg) = num;
>   	return 0;
>   }
> -static struct kernel_param_ops param_ops_portnr = {
> +static const struct kernel_param_ops param_ops_portnr = {
>   	.set = param_set_portnr,
>   	.get = param_get_uint,
>   };
> diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
> index 1c9effa..5d0f4d9 100644
> --- a/include/linux/moduleparam.h
> +++ b/include/linux/moduleparam.h
> @@ -225,7 +225,7 @@ struct kparam_array
>
>   /* Obsolete - use module_param_cb() */
>   #define module_param_call(name, set, get, arg, perm)			\
> -	static struct kernel_param_ops __param_ops_##name =		\
> +	static const struct kernel_param_ops __param_ops_##name =		\
>   		{ .flags = 0, (void *)set, (void *)get };		\
>   	__module_param_call(MODULE_PARAM_PREFIX,			\
>   			    name,&__param_ops_##name, arg,		\
> @@ -376,64 +376,64 @@ static inline void destroy_params(const struct kernel_param *params,
>   #define __param_check(name, p, type) \
>   	static inline type __always_unused *__check_##name(void) { return(p); }
>
> -extern struct kernel_param_ops param_ops_byte;
> +extern const struct kernel_param_ops param_ops_byte;
>   extern int param_set_byte(const char *val, const struct kernel_param *kp);
>   extern int param_get_byte(char *buffer, const struct kernel_param *kp);
>   #define param_check_byte(name, p) __param_check(name, p, unsigned char)
>
> -extern struct kernel_param_ops param_ops_short;
> +extern const struct kernel_param_ops param_ops_short;
>   extern int param_set_short(const char *val, const struct kernel_param *kp);
>   extern int param_get_short(char *buffer, const struct kernel_param *kp);
>   #define param_check_short(name, p) __param_check(name, p, short)
>
> -extern struct kernel_param_ops param_ops_ushort;
> +extern const struct kernel_param_ops param_ops_ushort;
>   extern int param_set_ushort(const char *val, const struct kernel_param *kp);
>   extern int param_get_ushort(char *buffer, const struct kernel_param *kp);
>   #define param_check_ushort(name, p) __param_check(name, p, unsigned short)
>
> -extern struct kernel_param_ops param_ops_int;
> +extern const struct kernel_param_ops param_ops_int;
>   extern int param_set_int(const char *val, const struct kernel_param *kp);
>   extern int param_get_int(char *buffer, const struct kernel_param *kp);
>   #define param_check_int(name, p) __param_check(name, p, int)
>
> -extern struct kernel_param_ops param_ops_uint;
> +extern const struct kernel_param_ops param_ops_uint;
>   extern int param_set_uint(const char *val, const struct kernel_param *kp);
>   extern int param_get_uint(char *buffer, const struct kernel_param *kp);
>   #define param_check_uint(name, p) __param_check(name, p, unsigned int)
>
> -extern struct kernel_param_ops param_ops_long;
> +extern const struct kernel_param_ops param_ops_long;
>   extern int param_set_long(const char *val, const struct kernel_param *kp);
>   extern int param_get_long(char *buffer, const struct kernel_param *kp);
>   #define param_check_long(name, p) __param_check(name, p, long)
>
> -extern struct kernel_param_ops param_ops_ulong;
> +extern const struct kernel_param_ops param_ops_ulong;
>   extern int param_set_ulong(const char *val, const struct kernel_param *kp);
>   extern int param_get_ulong(char *buffer, const struct kernel_param *kp);
>   #define param_check_ulong(name, p) __param_check(name, p, unsigned long)
>
> -extern struct kernel_param_ops param_ops_ullong;
> +extern const struct kernel_param_ops param_ops_ullong;
>   extern int param_set_ullong(const char *val, const struct kernel_param *kp);
>   extern int param_get_ullong(char *buffer, const struct kernel_param *kp);
>   #define param_check_ullong(name, p) __param_check(name, p, unsigned long long)
>
> -extern struct kernel_param_ops param_ops_charp;
> +extern const struct kernel_param_ops param_ops_charp;
>   extern int param_set_charp(const char *val, const struct kernel_param *kp);
>   extern int param_get_charp(char *buffer, const struct kernel_param *kp);
>   #define param_check_charp(name, p) __param_check(name, p, char *)
>
>   /* We used to allow int as well as bool.  We're taking that away! */
> -extern struct kernel_param_ops param_ops_bool;
> +extern const struct kernel_param_ops param_ops_bool;
>   extern int param_set_bool(const char *val, const struct kernel_param *kp);
>   extern int param_get_bool(char *buffer, const struct kernel_param *kp);
>   #define param_check_bool(name, p) __param_check(name, p, bool)
>
> -extern struct kernel_param_ops param_ops_invbool;
> +extern const struct kernel_param_ops param_ops_invbool;
>   extern int param_set_invbool(const char *val, const struct kernel_param *kp);
>   extern int param_get_invbool(char *buffer, const struct kernel_param *kp);
>   #define param_check_invbool(name, p) __param_check(name, p, bool)
>
>   /* An int, which can only be set like a bool (though it shows as an int). */
> -extern struct kernel_param_ops param_ops_bint;
> +extern const struct kernel_param_ops param_ops_bint;
>   extern int param_set_bint(const char *val, const struct kernel_param *kp);
>   #define param_get_bint param_get_int
>   #define param_check_bint param_check_int
> @@ -477,9 +477,9 @@ extern int param_set_bint(const char *val, const struct kernel_param *kp);
>   			    perm, -1, 0);				\
>   	__MODULE_PARM_TYPE(name, "array of " #type)
>
> -extern struct kernel_param_ops param_array_ops;
> +extern const struct kernel_param_ops param_array_ops;
>
> -extern struct kernel_param_ops param_ops_string;
> +extern const struct kernel_param_ops param_ops_string;
>   extern int param_set_copystring(const char *val, const struct kernel_param *);
>   extern int param_get_string(char *buffer, const struct kernel_param *kp);
>
> diff --git a/kernel/params.c b/kernel/params.c
> index a22d6a7..b7635c0 100644
> --- a/kernel/params.c
> +++ b/kernel/params.c
> @@ -251,7 +251,7 @@ char *parse_args(const char *doing,
>   		return scnprintf(buffer, PAGE_SIZE, format,		\
>   				*((type *)kp->arg));			\
>   	}								\
> -	struct kernel_param_ops param_ops_##name = {			\
> +	const struct kernel_param_ops param_ops_##name = {			\
>   		.set = param_set_##name,				\
>   		.get = param_get_##name,				\
>   	};								\
> @@ -303,7 +303,7 @@ static void param_free_charp(void *arg)
>   	maybe_kfree_parameter(*((char **)arg));
>   }
>
> -struct kernel_param_ops param_ops_charp = {
> +const struct kernel_param_ops param_ops_charp = {
>   	.set = param_set_charp,
>   	.get = param_get_charp,
>   	.free = param_free_charp,
> @@ -328,7 +328,7 @@ int param_get_bool(char *buffer, const struct kernel_param *kp)
>   }
>   EXPORT_SYMBOL(param_get_bool);
>
> -struct kernel_param_ops param_ops_bool = {
> +const struct kernel_param_ops param_ops_bool = {
>   	.flags = KERNEL_PARAM_OPS_FL_NOARG,
>   	.set = param_set_bool,
>   	.get = param_get_bool,
> @@ -356,7 +356,7 @@ int param_get_invbool(char *buffer, const struct kernel_param *kp)
>   }
>   EXPORT_SYMBOL(param_get_invbool);
>
> -struct kernel_param_ops param_ops_invbool = {
> +const struct kernel_param_ops param_ops_invbool = {
>   	.set = param_set_invbool,
>   	.get = param_get_invbool,
>   };
> @@ -379,7 +379,7 @@ int param_set_bint(const char *val, const struct kernel_param *kp)
>   }
>   EXPORT_SYMBOL(param_set_bint);
>
> -struct kernel_param_ops param_ops_bint = {
> +const struct kernel_param_ops param_ops_bint = {
>   	.flags = KERNEL_PARAM_OPS_FL_NOARG,
>   	.set = param_set_bint,
>   	.get = param_get_int,
> @@ -476,7 +476,7 @@ static void param_array_free(void *arg)
>   			arr->ops->free(arr->elem + arr->elemsize * i);
>   }
>
> -struct kernel_param_ops param_array_ops = {
> +const struct kernel_param_ops param_array_ops = {
>   	.set = param_array_set,
>   	.get = param_array_get,
>   	.free = param_array_free,
> @@ -504,7 +504,7 @@ int param_get_string(char *buffer, const struct kernel_param *kp)
>   }
>   EXPORT_SYMBOL(param_get_string);
>
> -struct kernel_param_ops param_ops_string = {
> +const struct kernel_param_ops param_ops_string = {
>   	.set = param_set_copystring,
>   	.get = param_get_string,
>   };
> diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c
> index 47f38be..02f5367 100644
> --- a/net/sunrpc/auth.c
> +++ b/net/sunrpc/auth.c
> @@ -72,7 +72,7 @@ static int param_get_hashtbl_sz(char *buffer, const struct kernel_param *kp)
>
>   #define param_check_hashtbl_sz(name, p) __param_check(name, p, unsigned int);
>
> -static struct kernel_param_ops param_ops_hashtbl_sz = {
> +static const struct kernel_param_ops param_ops_hashtbl_sz = {
>   	.set = param_set_hashtbl_sz,
>   	.get = param_get_hashtbl_sz,
>   };
> diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
> index 66891e3..b051728 100644
> --- a/net/sunrpc/xprtsock.c
> +++ b/net/sunrpc/xprtsock.c
> @@ -2982,7 +2982,7 @@ static int param_set_portnr(const char *val, const struct kernel_param *kp)
>   			RPC_MAX_RESVPORT);
>   }
>
> -static struct kernel_param_ops param_ops_portnr = {
> +static const struct kernel_param_ops param_ops_portnr = {
>   	.set = param_set_portnr,
>   	.get = param_get_uint,
>   };
> @@ -3001,7 +3001,7 @@ static int param_set_slot_table_size(const char *val,
>   			RPC_MAX_SLOT_TABLE);
>   }
>
> -static struct kernel_param_ops param_ops_slot_table_size = {
> +static const struct kernel_param_ops param_ops_slot_table_size = {
>   	.set = param_set_slot_table_size,
>   	.get = param_get_uint,
>   };
> @@ -3017,7 +3017,7 @@ static int param_set_max_slot_table_size(const char *val,
>   			RPC_MAX_SLOT_TABLE_LIMIT);
>   }
>
> -static struct kernel_param_ops param_ops_max_slot_table_size = {
> +static const struct kernel_param_ops param_ops_max_slot_table_size = {
>   	.set = param_set_max_slot_table_size,
>   	.get = param_get_uint,
>   };
> diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
> index e5f1561..45eb96d 100644
> --- a/security/apparmor/lsm.c
> +++ b/security/apparmor/lsm.c
> @@ -667,7 +667,7 @@ static struct security_operations apparmor_ops = {
>   static int param_set_aabool(const char *val, const struct kernel_param *kp);
>   static int param_get_aabool(char *buffer, const struct kernel_param *kp);
>   #define param_check_aabool param_check_bool
> -static struct kernel_param_ops param_ops_aabool = {
> +static const struct kernel_param_ops param_ops_aabool = {
>   	.flags = KERNEL_PARAM_OPS_FL_NOARG,
>   	.set = param_set_aabool,
>   	.get = param_get_aabool
> @@ -676,7 +676,7 @@ static struct kernel_param_ops param_ops_aabool = {
>   static int param_set_aauint(const char *val, const struct kernel_param *kp);
>   static int param_get_aauint(char *buffer, const struct kernel_param *kp);
>   #define param_check_aauint param_check_uint
> -static struct kernel_param_ops param_ops_aauint = {
> +static const struct kernel_param_ops param_ops_aauint = {
>   	.set = param_set_aauint,
>   	.get = param_get_aauint
>   };
> @@ -684,7 +684,7 @@ static struct kernel_param_ops param_ops_aauint = {
>   static int param_set_aalockpolicy(const char *val, const struct kernel_param *kp);
>   static int param_get_aalockpolicy(char *buffer, const struct kernel_param *kp);
>   #define param_check_aalockpolicy param_check_bool
> -static struct kernel_param_ops param_ops_aalockpolicy = {
> +static const struct kernel_param_ops param_ops_aalockpolicy = {
>   	.flags = KERNEL_PARAM_OPS_FL_NOARG,
>   	.set = param_set_aalockpolicy,
>   	.get = param_get_aalockpolicy
> diff --git a/security/integrity/ima/ima_crypto.c b/security/integrity/ima/ima_crypto.c
> index 686355f..e24121a 100644
> --- a/security/integrity/ima/ima_crypto.c
> +++ b/security/integrity/ima/ima_crypto.c
> @@ -55,7 +55,7 @@ static int param_set_bufsize(const char *val, const struct kernel_param *kp)
>   	return 0;
>   }
>
> -static struct kernel_param_ops param_ops_bufsize = {
> +static const struct kernel_param_ops param_ops_bufsize = {
>   	.set = param_set_bufsize,
>   	.get = param_get_uint,
>   };
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index e1c2105..959df73 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -166,7 +166,7 @@ MODULE_PARM_DESC(beep_mode, "Select HDA Beep registration mode "
>
>   #ifdef CONFIG_PM
>   static int param_set_xint(const char *val, const struct kernel_param *kp);
> -static struct kernel_param_ops param_ops_xint = {
> +static const struct kernel_param_ops param_ops_xint = {
>   	.set = param_set_xint,
>   	.get = param_get_int,
>   };


  reply	other threads:[~2015-04-21 10:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-20 23:30 [PATCH v1 0/6] module params: few simplifications Luis R. Rodriguez
2015-04-20 23:30 ` Luis R. Rodriguez
2015-04-21 10:20   ` Arend van Spriel [this message]
2015-04-20 23:30 ` [PATCH v1 2/6] kernel/module.c: use generic module param operaters for sig_enforce Luis R. Rodriguez
2015-04-20 23:30 ` [PATCH v1 3/6] kernel/params.c: generalize bool_enable_only Luis R. Rodriguez
2015-04-20 23:30 ` [PATCH v1 4/6] moduleparam.h: add module_param_config_*() helpers Luis R. Rodriguez
2015-04-20 23:42   ` Julian Calaby
2015-04-21 16:41     ` Luis R. Rodriguez
2015-04-21 15:21   ` Tejun Heo
2015-04-21 16:55     ` Luis R. Rodriguez
2015-04-21 20:58       ` Tejun Heo
2015-04-22  7:15   ` Rusty Russell
2015-04-22 15:42     ` Luis R. Rodriguez
2015-04-20 23:30 ` [PATCH v1 5/6] kernel/workqueue.c: use module_param_config_on_off() for power_efficient Luis R. Rodriguez
2015-04-20 23:30 ` [PATCH v1 6/6] kernel/module.c: use module_param_config_on() for sig_enforce Luis R. Rodriguez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5536245A.3090106@broadcom.com \
    --to=arend@broadcom.com \
    --cc=akpm@linux-foundation.org \
    --cc=casey@schaufler-ca.com \
    --cc=cocci@systeme.lip6.fr \
    --cc=geert@linux-m68k.org \
    --cc=gitster@pobox.com \
    --cc=hare@suse.de \
    --cc=hch@infradead.org \
    --cc=jani.nikula@intel.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mcgrof@do-not-panic.com \
    --cc=mcgrof@suse.com \
    --cc=mingo@kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).