Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[PATCH] Remove __devinitdata from notifier block definitions

Few of the notifier_chain_register() callers use __devinitdata in the
definition of notifier_block data structure. It is incorrect as the
data structure should be available after the initializations (they do
not unregister them during initializations).

This was leading to an oops when notifier_chain_register() call is
invoked for those callback chains after initialization.

This patch fixes all such usages to _not_ have the notifier_block data
structure in the init data section.

Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Chandra Seetharaman and committed by
Linus Torvalds
649bbaa4 e7edf9cd

+9 -9
+1 -1
arch/powerpc/kernel/sysfs.c
··· 297 297 return NOTIFY_OK; 298 298 } 299 299 300 - static struct notifier_block __devinitdata sysfs_cpu_nb = { 300 + static struct notifier_block sysfs_cpu_nb = { 301 301 .notifier_call = sysfs_cpu_notify, 302 302 }; 303 303
+1 -1
arch/s390/appldata/appldata_base.c
··· 652 652 return NOTIFY_OK; 653 653 } 654 654 655 - static struct notifier_block __devinitdata appldata_nb = { 655 + static struct notifier_block appldata_nb = { 656 656 .notifier_call = appldata_cpu_notify, 657 657 }; 658 658
+1 -1
block/ll_rw_blk.c
··· 3385 3385 } 3386 3386 3387 3387 3388 - static struct notifier_block __devinitdata blk_cpu_notifier = { 3388 + static struct notifier_block blk_cpu_notifier = { 3389 3389 .notifier_call = blk_cpu_notify, 3390 3390 }; 3391 3391
+1 -1
kernel/hrtimer.c
··· 860 860 return NOTIFY_OK; 861 861 } 862 862 863 - static struct notifier_block __devinitdata hrtimers_nb = { 863 + static struct notifier_block hrtimers_nb = { 864 864 .notifier_call = hrtimer_cpu_notify, 865 865 }; 866 866
+1 -1
kernel/rcupdate.c
··· 537 537 return NOTIFY_OK; 538 538 } 539 539 540 - static struct notifier_block __devinitdata rcu_nb = { 540 + static struct notifier_block rcu_nb = { 541 541 .notifier_call = rcu_cpu_notify, 542 542 }; 543 543
+1 -1
kernel/sched.c
··· 4814 4814 /* Register at highest priority so that task migration (migrate_all_tasks) 4815 4815 * happens before everything else. 4816 4816 */ 4817 - static struct notifier_block __devinitdata migration_notifier = { 4817 + static struct notifier_block migration_notifier = { 4818 4818 .notifier_call = migration_call, 4819 4819 .priority = 10 4820 4820 };
+1 -1
kernel/softirq.c
··· 484 484 return NOTIFY_OK; 485 485 } 486 486 487 - static struct notifier_block __devinitdata cpu_nfb = { 487 + static struct notifier_block cpu_nfb = { 488 488 .notifier_call = cpu_callback 489 489 }; 490 490
+1 -1
kernel/softlockup.c
··· 140 140 return NOTIFY_OK; 141 141 } 142 142 143 - static struct notifier_block __devinitdata cpu_nfb = { 143 + static struct notifier_block cpu_nfb = { 144 144 .notifier_call = cpu_callback 145 145 }; 146 146
+1 -1
kernel/timer.c
··· 1334 1334 return NOTIFY_OK; 1335 1335 } 1336 1336 1337 - static struct notifier_block __devinitdata timers_nb = { 1337 + static struct notifier_block timers_nb = { 1338 1338 .notifier_call = timer_cpu_notify, 1339 1339 }; 1340 1340