From 44ee63587dce85593c22497140db16f4e5027860 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Wed, 17 Feb 2010 10:50:50 +0900 Subject: percpu: Add __percpu sparse annotations to hw_breakpoint Add __percpu sparse annotations to hw_breakpoint. These annotations are to make sparse consider percpu variables to be in a different address space and warn if accessed without going through percpu accessors. This patch doesn't affect normal builds. In kernel/hw_breakpoint.c, per_cpu(nr_task_bp_pinned, cpu)'s will trigger spurious noderef related warnings from sparse. Changing it to &per_cpu(nr_task_bp_pinned[0], cpu) will work around the problem but deemed to ugly by the maintainer. Leave it alone until better solution can be found. Signed-off-by: Tejun Heo Cc: Stephen Rothwell Cc: K.Prasad LKML-Reference: <4B7B4B7A.9050902@kernel.org> Signed-off-by: Frederic Weisbecker --- samples/hw_breakpoint/data_breakpoint.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'samples') diff --git a/samples/hw_breakpoint/data_breakpoint.c b/samples/hw_breakpoint/data_breakpoint.c index c69cbe9b242..bd0f337afca 100644 --- a/samples/hw_breakpoint/data_breakpoint.c +++ b/samples/hw_breakpoint/data_breakpoint.c @@ -34,7 +34,7 @@ #include #include -struct perf_event **sample_hbp; +struct perf_event * __percpu *sample_hbp; static char ksym_name[KSYM_NAME_LEN] = "pid_max"; module_param_string(ksym, ksym_name, KSYM_NAME_LEN, S_IRUGO); @@ -61,8 +61,8 @@ static int __init hw_break_module_init(void) attr.bp_type = HW_BREAKPOINT_W | HW_BREAKPOINT_R; sample_hbp = register_wide_hw_breakpoint(&attr, sample_hbp_handler); - if (IS_ERR(sample_hbp)) { - ret = PTR_ERR(sample_hbp); + if (IS_ERR((void __force *)sample_hbp)) { + ret = PTR_ERR((void __force *)sample_hbp); goto fail; } -- cgit v1.2.3 From a115bc070b1fc57ab23f3972401425927b5b465c Mon Sep 17 00:00:00 2001 From: Radu Voicilas Date: Sat, 12 Dec 2009 01:06:09 -0800 Subject: kobject-example: Spelling fixes. No change in functionality. Signed-off-by: Radu Voicilas Signed-off-by: Greg Kroah-Hartman --- samples/kobject/kobject-example.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'samples') diff --git a/samples/kobject/kobject-example.c b/samples/kobject/kobject-example.c index 8d9b55a1202..86ea0c3ad97 100644 --- a/samples/kobject/kobject-example.c +++ b/samples/kobject/kobject-example.c @@ -44,7 +44,7 @@ static struct kobj_attribute foo_attribute = __ATTR(foo, 0666, foo_show, foo_store); /* - * More complex function where we determine which varible is being accessed by + * More complex function where we determine which variable is being accessed by * looking at the attribute for the "baz" and "bar" files. */ static ssize_t b_show(struct kobject *kobj, struct kobj_attribute *attr, @@ -79,7 +79,7 @@ static struct kobj_attribute bar_attribute = /* - * Create a group of attributes so that we can create and destory them all + * Create a group of attributes so that we can create and destroy them all * at once. */ static struct attribute *attrs[] = { -- cgit v1.2.3 From 20ef9f46a9abe3c25d9f2834f6cc86bfab46d609 Mon Sep 17 00:00:00 2001 From: Radu Voicilas Date: Sat, 12 Dec 2009 01:06:10 -0800 Subject: kset-example: Spelling fixes. No change in functionality. Signed-off-by: Radu Voicilas Signed-off-by: Greg Kroah-Hartman --- samples/kobject/kset-example.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'samples') diff --git a/samples/kobject/kset-example.c b/samples/kobject/kset-example.c index 45b7d56fb54..7c608814052 100644 --- a/samples/kobject/kset-example.c +++ b/samples/kobject/kset-example.c @@ -127,7 +127,7 @@ static struct foo_attribute foo_attribute = __ATTR(foo, 0666, foo_show, foo_store); /* - * More complex function where we determine which varible is being accessed by + * More complex function where we determine which variable is being accessed by * looking at the attribute for the "baz" and "bar" files. */ static ssize_t b_show(struct foo_obj *foo_obj, struct foo_attribute *attr, @@ -161,7 +161,7 @@ static struct foo_attribute bar_attribute = __ATTR(bar, 0666, b_show, b_store); /* - * Create a group of attributes so that we can create and destory them all + * Create a group of attributes so that we can create and destroy them all * at once. */ static struct attribute *foo_default_attrs[] = { -- cgit v1.2.3 From 52cf25d0ab7f78eeecc59ac652ed5090f69b619e Mon Sep 17 00:00:00 2001 From: Emese Revfy Date: Tue, 19 Jan 2010 02:58:23 +0100 Subject: Driver core: Constify struct sysfs_ops in struct kobj_type Constify struct sysfs_ops. This is part of the ops structure constification effort started by Arjan van de Ven et al. Benefits of this constification: * prevents modification of data that is shared (referenced) by many other structure instances at runtime * detects/prevents accidental (but not intentional) modification attempts on archs that enforce read-only kernel data at runtime * potentially better optimized code as the compiler can assume that the const data cannot be changed * the compiler/linker move const data into .rodata and therefore exclude them from false sharing Signed-off-by: Emese Revfy Acked-by: David Teigland Acked-by: Matt Domsch Acked-by: Maciej Sosnowski Acked-by: Hans J. Koch Acked-by: Pekka Enberg Acked-by: Jens Axboe Acked-by: Stephen Hemminger Signed-off-by: Greg Kroah-Hartman --- samples/kobject/kset-example.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'samples') diff --git a/samples/kobject/kset-example.c b/samples/kobject/kset-example.c index 7c608814052..3b126d1f859 100644 --- a/samples/kobject/kset-example.c +++ b/samples/kobject/kset-example.c @@ -87,7 +87,7 @@ static ssize_t foo_attr_store(struct kobject *kobj, } /* Our custom sysfs_ops that we will associate with our ktype later on */ -static struct sysfs_ops foo_sysfs_ops = { +static const struct sysfs_ops foo_sysfs_ops = { .show = foo_attr_show, .store = foo_attr_store, }; -- cgit v1.2.3