On 03/19/2010 03:56 PM, Randy Dunlap wrote:
On 03/19/10 12:51, Justin P. Mattock wrote:
> After doing some things on a small issue,
> I noticed through web surfing, that there were patches
> submitted pertaining that __initcall is deprecated,
> and device_initcall should be used.
Where was this discussion? Do you have any pointers to it?
The best info on this is scripts/checkpatch.pl
line #2664
when I found this I just did a quick search of __initcall
(which gives hits here and there)
https://patchwork.kernel.org/patch/23344/
(also found others at around 2008 or so)
I don't see any mention of __initcall being deprecated in
Linus' mainline git tree, or in linux-next, or in mmotm.
Where are those patches?
I don't know(I'm out of the social pipeline when it comes to Linux news,
and updates)..
like in the explanation part of the patch
I was looking into something else, then ran into this,
so as a break(from what I was originally doing)
decided to do this and submit.
> So as a change of subject(since what I was looking at
> was frustrating me),I decided to grep the whole tree
> and make the change(partially).
>
> Currently I'm running this patch on my system, kernel compiles
> without any errors or warnings.(thought there would be a speed increase
> but didn't see much(if any)).
No, __initcall(x) is just a shorthand version of typing
device_initcall(x). They do the same thing.
yep, that's what I found out as well(reason for the cosmetic
in the subject line).
> Biggest problem I have though is testing this on other hardware
types
> (I only have a macbook,and an iMac).
> So please if you have the access to other arch/hardware types please
> test.
>
> Now what I mean by partially is the __initcall function is still
> there, so(if any) userspace apps/libs depend on this it's there
> so they dont break and/or any other subsystem, that needs time
> to make the changes.
The only thing that might be affected is building out-of-tree drivers,
but those are easy to fix.
alright..main concern is making sure things don't break in the
kernel(even though things do).
I can have a go at the header files, submit
then if it's something people agree they want to do, then they
can go from there(if not it's fine as well).
> Note:
> the remaining files that still have __initcall in them are:
> (according to grep)
>
> arch/um/include/shared/init.h
> include/linux/init.h
> scripts/checkpatch.pl
>
> either I or somebody else, can change this(although a bit
> concerned about breaking things).
>
> Signed-off-by: Justin P. Mattock<justinmattock(a)gmail.com>
> ---
> Documentation/DocBook/kernel-hacking.tmpl | 4 ++--
> Documentation/cpu-freq/cpu-drivers.txt | 2 +-
> Documentation/kbuild/makefiles.txt | 2 +-
> arch/arm/mach-at91/leds.c | 2 +-
> arch/arm/mach-clps711x/p720t.c | 2 +-
> arch/arm/mach-ebsa110/leds.c | 2 +-
> arch/arm/mach-footbridge/cats-hw.c | 2 +-
> arch/arm/mach-footbridge/ebsa285-leds.c | 2 +-
> arch/arm/mach-footbridge/netwinder-hw.c | 2 +-
> arch/arm/mach-footbridge/netwinder-leds.c | 2 +-
> arch/arm/mach-ks8695/leds.c | 2 +-
> arch/arm/mach-omap1/leds.c | 2 +-
> arch/arm/mach-omap1/pm.c | 2 +-
> arch/arm/mach-orion5x/db88f5281-setup.c | 2 +-
> arch/arm/mach-orion5x/rd88f5182-setup.c | 2 +-
> arch/arm/mach-pxa/generic.c | 2 +-
> arch/arm/mach-pxa/pxa25x.c | 2 +-
> arch/arm/mach-shark/leds.c | 2 +-
> arch/blackfin/kernel/bfin_gpio.c | 2 +-
> arch/blackfin/mach-common/pm.c | 2 +-
> arch/cris/arch-v10/kernel/debugport.c | 2 +-
> arch/cris/arch-v10/kernel/fasttimer.c | 2 +-
> arch/cris/arch-v10/mm/init.c | 2 +-
> arch/cris/arch-v32/kernel/fasttimer.c | 2 +-
> arch/cris/arch-v32/kernel/pinmux.c | 2 +-
> arch/cris/arch-v32/kernel/signal.c | 2 +-
> arch/cris/arch-v32/mach-a3/io.c | 2 +-
> arch/cris/arch-v32/mach-a3/pinmux.c | 2 +-
> arch/cris/arch-v32/mach-fs/io.c | 2 +-
> arch/cris/arch-v32/mach-fs/pinmux.c | 2 +-
> arch/cris/kernel/profile.c | 2 +-
> arch/cris/kernel/time.c | 2 +-
> arch/cris/kernel/traps.c | 2 +-
> arch/frv/kernel/gdb-stub.c | 2 +-
> arch/frv/kernel/pm-mb93093.c | 2 +-
> arch/frv/kernel/pm.c | 2 +-
> arch/frv/kernel/sysctl.c | 2 +-
> arch/h8300/kernel/gpio.c | 2 +-
> arch/ia64/hp/sim/simeth.c | 2 +-
> arch/ia64/hp/sim/simserial.c | 2 +-
> arch/ia64/kernel/audit.c | 2 +-
> arch/ia64/kernel/crash.c | 2 +-
> arch/ia64/kernel/cyclone.c | 2 +-
> arch/ia64/kernel/perfmon.c | 2 +-
> arch/ia64/kernel/setup.c | 2 +-
> arch/ia64/kernel/uncached.c | 2 +-
> arch/ia64/kernel/unwind.c | 2 +-
> arch/ia64/mm/init.c | 2 +-
> arch/mips/Makefile | 2 +-
> arch/mips/kernel/unaligned.c | 2 +-
> arch/mips/lasat/sysctl.c | 2 +-
> arch/mips/math-emu/cp1emu.c | 2 +-
> arch/mips/nxp/pnx8550/common/proc.c | 2 +-
> arch/mips/sibyte/sb1250/bus_watcher.c | 2 +-
> arch/mn10300/kernel/gdb-stub.c | 2 +-
> arch/mn10300/kernel/mn10300-serial.c | 2 +-
> arch/mn10300/kernel/profile.c | 2 +-
> arch/parisc/kernel/pci-dma.c | 2 +-
> arch/parisc/kernel/pdc_chassis.c | 2 +-
> arch/powerpc/kernel/audit.c | 2 +-
> arch/powerpc/kernel/idle.c | 2 +-
> arch/powerpc/kernel/irq.c | 2 +-
> arch/powerpc/kernel/proc_powerpc.c | 2 +-
> arch/powerpc/kernel/prom.c | 4 ++--
> arch/powerpc/kernel/rtas-proc.c | 2 +-
> arch/powerpc/kernel/rtasd.c | 2 +-
> arch/powerpc/kernel/sysfs.c | 2 +-
> arch/powerpc/kernel/tau_6xx.c | 2 +-
> arch/powerpc/kernel/vio.c | 2 +-
> arch/powerpc/platforms/iseries/lpevents.c | 2 +-
> arch/powerpc/platforms/iseries/mf.c | 2 +-
> arch/powerpc/platforms/iseries/proc.c | 2 +-
> arch/powerpc/platforms/iseries/viopath.c | 2 +-
> arch/powerpc/platforms/pseries/eeh.c | 2 +-
> arch/powerpc/platforms/pseries/hvCall_inst.c | 2 +-
> arch/powerpc/platforms/pseries/power.c | 2 +-
> arch/powerpc/platforms/pseries/ras.c | 2 +-
> arch/powerpc/platforms/pseries/reconfig.c | 2 +-
> arch/powerpc/xmon/xmon.c | 2 +-
> arch/s390/appldata/appldata_base.c | 2 +-
> arch/s390/kernel/audit.c | 2 +-
> arch/s390/kernel/compat_exec_domain.c | 2 +-
> arch/s390/kernel/ipl.c | 2 +-
> arch/s390/kernel/topology.c | 2 +-
> arch/sh/boards/board-edosk7760.c | 2 +-
> arch/sh/boards/board-sh7785lcr.c | 2 +-
> arch/sh/boards/mach-cayman/setup.c | 2 +-
> arch/sh/boards/mach-landisk/setup.c | 2 +-
> arch/sh/boards/mach-r2d/setup.c | 2 +-
> arch/sh/boards/mach-sdk7786/setup.c | 2 +-
> arch/sh/boards/mach-se/7206/setup.c | 2 +-
> arch/sh/boards/mach-se/7751/setup.c | 2 +-
> arch/sh/boards/mach-sh03/setup.c | 2 +-
> arch/sh/kernel/traps_64.c | 2 +-
> arch/sparc/kernel/apc.c | 2 +-
> arch/sparc/kernel/audit.c | 2 +-
> arch/sparc/kernel/mdesc.c | 2 +-
> arch/sparc/kernel/pmc.c | 2 +-
> arch/um/drivers/mconsole_kern.c | 8 ++++----
> arch/um/drivers/net_kern.c | 2 +-
> arch/um/drivers/stderr_console.c | 2 +-
> arch/um/drivers/ubd_kern.c | 4 ++--
> arch/um/kernel/exitcode.c | 2 +-
> arch/um/kernel/physmem.c | 2 +-
> arch/um/os-Linux/aio.c | 4 ++--
> arch/um/os-Linux/skas/mem.c | 2 +-
> arch/um/os-Linux/skas/process.c | 2 +-
> arch/um/os-Linux/umid.c | 2 +-
> arch/um/sys-i386/tls.c | 2 +-
> arch/x86/kernel/audit_64.c | 2 +-
> arch/x86/kernel/tlb_uv.c | 4 ++--
> arch/x86/kernel/vsyscall_64.c | 4 ++--
> arch/x86/mm/dump_pagetables.c | 2 +-
> arch/x86/vdso/vdso32-setup.c | 4 ++--
> arch/x86/vdso/vma.c | 2 +-
> arch/xtensa/platforms/iss/console.c | 2 +-
> drivers/net/arm/am79c961a.c | 2 +-
> drivers/net/hamradio/baycom_epp.c | 1 +
> drivers/net/hamradio/baycom_par.c | 1 +
> drivers/net/hamradio/baycom_ser_fdx.c | 1 +
> drivers/net/hamradio/baycom_ser_hdx.c | 1 +
> drivers/s390/char/sclp_cmd.c | 2 +-
> drivers/s390/char/sclp_config.c | 2 +-
> drivers/s390/char/sclp_cpi_sys.c | 2 +-
> drivers/s390/char/sclp_vt220.c | 2 +-
> drivers/s390/cio/blacklist.c | 2 +-
> drivers/staging/rtl8192u/ieee80211/api.c | 2 +-
> fs/aio.c | 2 +-
> fs/compat_ioctl.c | 2 +-
> ipc/ipc_sysctl.c | 2 +-
> ipc/mqueue.c | 2 +-
> ipc/util.c | 2 +-
> kernel/audit.c | 2 +-
> kernel/audit_tree.c | 2 +-
> kernel/dma.c | 2 +-
> kernel/futex.c | 2 +-
> kernel/lockdep_proc.c | 2 +-
> kernel/pid_namespace.c | 2 +-
> kernel/posix-cpu-timers.c | 2 +-
> kernel/posix-timers.c | 2 +-
> kernel/resource.c | 2 +-
> kernel/sched_debug.c | 2 +-
> kernel/time/timer_list.c | 2 +-
> kernel/time/timer_stats.c | 2 +-
> kernel/tracepoint.c | 2 +-
> kernel/utsname_sysctl.c | 2 +-
> lib/audit.c | 2 +-
> lib/debugobjects.c | 2 +-
> mm/bounce.c | 2 +-
> mm/memory.c | 2 +-
> mm/mm_init.c | 2 +-
> mm/slab.c | 2 +-
> mm/slub.c | 2 +-
> mm/swapfile.c | 2 +-
> net/ipv4/syncookies.c | 2 +-
> net/ipv4/sysctl_net_ipv4.c | 2 +-
> security/keys/proc.c | 2 +-
> security/selinux/hooks.c | 2 +-
> security/selinux/netif.c | 2 +-
> security/selinux/netlink.c | 2 +-
> security/selinux/netnode.c | 2 +-
> security/selinux/netport.c | 2 +-
> security/selinux/selinuxfs.c | 2 +-
> security/selinux/ss/services.c | 2 +-
> security/smack/smackfs.c | 2 +-
> sound/last.c | 2 +-
> 166 files changed, 176 insertions(+), 172 deletions(-)