[Cocci] [PATCH v1 0/6] module params: few simplifications

2015-04-21 Thread Luis R. Rodriguez
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 ru...@rustcorp.com.au
Cc: Junio C Hamano gits...@pobox.com
Cc: Jani Nikula jani.nik...@intel.com
Cc: Christoph Hellwig h...@infradead.org
Cc: Andrew Morton a...@linux-foundation.org
Cc: Geert Uytterhoeven ge...@linux-m68k.org
Cc: Hannes Reinecke h...@suse.de
Cc: Kees Cook keesc...@chromium.org
Cc: Tejun Heo t...@kernel.org
Cc: Ingo Molnar mi...@kernel.org
Cc: linux-ker...@vger.kernel.org
Signed-off-by: Luis R. Rodriguez mcg...@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)
   

Re: [Cocci] [PATCH v1 0/6] module params: few simplifications

2015-04-21 Thread Arend van Spriel

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 Russellru...@rustcorp.com.au
Cc: Junio C Hamanogits...@pobox.com
Cc: Jani Nikulajani.nik...@intel.com
Cc: Christoph Hellwigh...@infradead.org
Cc: Andrew Mortona...@linux-foundation.org
Cc: Geert Uytterhoevenge...@linux-m68k.org
Cc: Hannes Reineckeh...@suse.de
Cc: Kees Cookkeesc...@chromium.org
Cc: Tejun Heot...@kernel.org
Cc: Ingo Molnarmi...@kernel.org
Cc: linux-ker...@vger.kernel.org
Signed-off-by: Luis R. Rodriguezmcg...@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= 

[Cocci] [PATCH v1 0/6] module params: few simplifications

2015-04-20 Thread Luis R. Rodriguez
From: Luis R. Rodriguez mcg...@suse.com

Here are a few simplifications on the sig_force module parameter code.
I'm digging through this as long term I'd like enable standard use of
the crypto code for module loading for firmware loading and later
any file requested (non firmware) to replace udev deamons such as
CRDA which should no longer be needed.

Short term this means seeing what code we could re-use and the option
to only force enable/passively enable signing is one of the options
I'd like to see we keep for firmware signing. The same grammar as used
for module signing can be used, but instead of copy+pasting code I
decided to take generalize the feature option of sig_force, make it
generic, learn from its implmentation of using const, making that
generic and lastly to simplify this even further to one line code
as I had done for the early_param_on_off() stuff recently. Since I'm
also adding an on_off() case for module parameters I had to find a
example simple use case for that, picked workqueue for that.

We might later be able to use SmPL grammar to replace a lot of old code
with these helpers (including early_param_on_off) but will let others look
into that as I'd like to complete other tasks.

All this goes test compiled on x86_64 on:

  * allnoconfig
  * allmodconfig
  * allyesconfig

This series was based on top of linux-next next-20150420.

Luis R. Rodriguez (6):
  kernel/params: constify struct kernel_param_ops uses
  kernel/module.c: use generic module param operaters for sig_enforce
  kernel/params.c: generalize bool_enable_only
  moduleparam.h: add module_param_config_*() helpers
  kernel/workqueue.c: use module_param_config_on_off() for
power_efficient
  kernel/module.c: use module_param_config_on() for sig_enforce

 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 | 73 ++---
 kernel/module.c | 37 +
 kernel/params.c | 44 
 kernel/workqueue.c  |  8 +---
 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 +-
 29 files changed, 141 insertions(+), 109 deletions(-)

-- 
2.3.2.209.gd67f9d5.dirty

___
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci