Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
David S. Miller [Mon, 29 Dec 2008 04:19:47 +0000 (20:19 -0800)]
Conflicts:
arch/sparc64/kernel/idprom.c

1  2 
Makefile
arch/sparc/kernel/idprom.c
kernel/sysctl.c

diff --combined Makefile
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 28
- EXTRAVERSION = -rc7
+ EXTRAVERSION =
  NAME = Erotic Pickled Herring
  
  # *DOCUMENTATION*
@@@ -205,14 -205,13 +205,14 @@@ ifeq ($(ARCH),x86_64
          SRCARCH := x86
  endif
  
 -# Where to locate arch specific headers
 +# Additional ARCH settings for sparc
  ifeq ($(ARCH),sparc64)
 -       hdr-arch  := sparc
 -else
 -       hdr-arch  := $(SRCARCH)
 +       SRCARCH := sparc
  endif
  
 +# Where to locate arch specific headers
 +hdr-arch  := $(SRCARCH)
 +
  KCONFIG_CONFIG        ?= .config
  
  # SHELL used by kbuild
@@@ -337,7 -336,7 +337,7 @@@ LINUXINCLUDE    := -Iinclude 
                     -I$(srctree)/arch/$(hdr-arch)/include               \
                     -include include/linux/autoconf.h
  
- KBUILD_CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE)
+ KBUILD_CPPFLAGS := -D__KERNEL__
  
  KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
                   -fno-strict-aliasing -fno-common \
@@@ -440,7 -439,11 +440,11 @@@ ifeq ($(config-targets),1
  include $(srctree)/arch/$(SRCARCH)/Makefile
  export KBUILD_DEFCONFIG KBUILD_KCONFIG
  
- config %config: scripts_basic outputmakefile FORCE
+ config: scripts_basic outputmakefile FORCE
+       $(Q)mkdir -p include/linux include/config
+       $(Q)$(MAKE) $(build)=scripts/kconfig $@
+ %config: scripts_basic outputmakefile FORCE
        $(Q)mkdir -p include/linux include/config
        $(Q)$(MAKE) $(build)=scripts/kconfig $@
  
@@@ -601,20 -604,25 +605,25 @@@ export  INSTALL_PATH ?= /boo
  MODLIB        = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
  export MODLIB
  
- #
- #  INSTALL_MOD_STRIP, if defined, will cause modules to be
- #  stripped after they are installed.  If INSTALL_MOD_STRIP is '1', then
- #  the default option --strip-debug will be used.  Otherwise,
- #  INSTALL_MOD_STRIP will used as the options to the strip command.
+ strip-symbols := $(srctree)/scripts/strip-symbols \
+                $(wildcard $(srctree)/arch/$(ARCH)/scripts/strip-symbols)
  
+ #
+ # INSTALL_MOD_STRIP, if defined, will cause modules to be stripped while
+ # they get installed.  If INSTALL_MOD_STRIP is '1', then the default
+ # options (see below) will be used.  Otherwise, INSTALL_MOD_STRIP will
+ # be used as the option(s) to the objcopy command.
  ifdef INSTALL_MOD_STRIP
  ifeq ($(INSTALL_MOD_STRIP),1)
- mod_strip_cmd = $(STRIP) --strip-debug
+ mod_strip_cmd = $(OBJCOPY) --strip-debug
+ ifeq ($(CONFIG_KALLSYMS_ALL),$(CONFIG_KALLSYMS_STRIP_GENERATED))
+ mod_strip_cmd += --wildcard $(addprefix --strip-symbols ,$(strip-symbols))
+ endif
  else
- mod_strip_cmd = $(STRIP) $(INSTALL_MOD_STRIP)
+ mod_strip_cmd = $(OBJCOPY) $(INSTALL_MOD_STRIP)
  endif # INSTALL_MOD_STRIP=1
  else
- mod_strip_cmd = true
+ mod_strip_cmd = false
  endif # INSTALL_MOD_STRIP
  export mod_strip_cmd
  
@@@ -744,6 -752,7 +753,7 @@@ last_kallsyms := 
  endif
  
  kallsyms.o := .tmp_kallsyms$(last_kallsyms).o
+ kallsyms.h := $(wildcard include/config/kallsyms/*.h) $(wildcard include/config/kallsyms/*/*.h)
  
  define verify_kallsyms
        $(Q)$(if $($(quiet)cmd_sysmap),                                      \
@@@ -768,24 -777,41 +778,41 @@@ ende
  
  # Generate .S file with all kernel symbols
  quiet_cmd_kallsyms = KSYM    $@
-       cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) \
-                      $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) > $@
+       cmd_kallsyms = { test $* -eq 0 || $(NM) -n $<; } \
+                    | $(KALLSYMS) $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) >$@
  
- .tmp_kallsyms1.o .tmp_kallsyms2.o .tmp_kallsyms3.o: %.o: %.S scripts FORCE
+ quiet_cmd_kstrip = STRIP   $@
+       cmd_kstrip = $(OBJCOPY) --wildcard $(addprefix --strip$(if $(CONFIG_RELOCATABLE),-unneeded)-symbols ,$(filter %/scripts/strip-symbols,$^)) $< $@
+ $(foreach n,0 1 2 3,.tmp_kallsyms$(n).o): KBUILD_AFLAGS += -Wa,--strip-local-absolute
+ $(foreach n,0 1 2 3,.tmp_kallsyms$(n).o): %.o: %.S scripts FORCE
        $(call if_changed_dep,as_o_S)
  
- .tmp_kallsyms%.S: .tmp_vmlinux% $(KALLSYMS)
+ ifeq ($(CONFIG_KALLSYMS_STRIP_GENERATED),y)
+ strip-ext := .stripped
+ endif
+ .tmp_kallsyms%.S: .tmp_vmlinux%$(strip-ext) $(KALLSYMS) $(kallsyms.h)
        $(call cmd,kallsyms)
  
+ # make -jN seems to have problems with intermediate files, see bug #3330.
+ .SECONDARY: $(foreach n,1 2 3,.tmp_vmlinux$(n).stripped)
+ .tmp_vmlinux%.stripped: .tmp_vmlinux% $(strip-symbols) $(kallsyms.h)
+       $(call cmd,kstrip)
+ ifneq ($(CONFIG_DEBUG_INFO),y)
+ .tmp_vmlinux%: LDFLAGS_vmlinux += -S
+ endif
  # .tmp_vmlinux1 must be complete except kallsyms, so update vmlinux version
- .tmp_vmlinux1: $(vmlinux-lds) $(vmlinux-all) FORCE
-       $(call if_changed_rule,ksym_ld)
+ .tmp_vmlinux%: $(vmlinux-lds) $(vmlinux-all) FORCE
+       $(if $(filter 1,$*),$(call if_changed_rule,ksym_ld),$(call if_changed,vmlinux__))
  
- .tmp_vmlinux2: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms1.o FORCE
-       $(call if_changed,vmlinux__)
+ .tmp_vmlinux0$(strip-ext):
+       $(Q)echo "placeholder" >$@
  
- .tmp_vmlinux3: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms2.o FORCE
-       $(call if_changed,vmlinux__)
+ .tmp_vmlinux1: .tmp_kallsyms0.o
+ .tmp_vmlinux2: .tmp_kallsyms1.o
+ .tmp_vmlinux3: .tmp_kallsyms2.o
  
  # Needs to visit scripts/ before $(KALLSYMS) can be used.
  $(KALLSYMS): scripts ;
@@@ -927,7 -953,7 +954,7 @@@ PHONY += prepare archprepare prepare0 p
  # 2) Create the include2 directory, used for the second asm symlink
  prepare3: include/config/kernel.release
  ifneq ($(KBUILD_SRC),)
-       @echo '  Using $(srctree) as source for kernel'
+       @$(kecho) '  Using $(srctree) as source for kernel'
        $(Q)if [ -f $(srctree)/.config -o -d $(srctree)/include/config ]; then \
                echo "  $(srctree) is not clean, please run 'make mrproper'";\
                echo "  in the '$(srctree)' directory.";\
@@@ -984,7 -1010,7 +1011,7 @@@ ende
  # directory for generated filesas used by some architectures.
  define create-symlink
        if [ ! -L include/asm ]; then                                      \
-                       echo '  SYMLINK $@ -> include/asm-$(SRCARCH)';     \
+                       $(kecho) '  SYMLINK $@ -> include/asm-$(SRCARCH)'; \
                        if [ ! -d include/asm-$(SRCARCH) ]; then           \
                                mkdir -p include/asm-$(SRCARCH);           \
                        fi;                                                \
@@@ -1023,6 -1049,10 +1050,10 @@@ include/linux/version.h: $(srctree)/Mak
  include/linux/utsrelease.h: include/config/kernel.release FORCE
        $(call filechk,utsrelease.h)
  
+ PHONY += headerdep
+ headerdep:
+       $(Q)find include/ -name '*.h' | xargs --max-args 1 scripts/headerdep.pl
  # ---------------------------------------------------------------------------
  
  PHONY += depend dep
@@@ -1097,7 -1127,7 +1128,7 @@@ all: module
  PHONY += modules
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
        $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
-       @echo '  Building modules, stage 2.';
+       @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
  
@@@ -1271,7 -1301,8 +1302,8 @@@ help
        @echo  '  versioncheck    - Sanity check on version.h usage'
        @echo  '  includecheck    - Check for duplicate included header files'
        @echo  '  export_report   - List the usages of all exported symbols'
-       @echo  '  headers_check   - Sanity check on exported headers'; \
+       @echo  '  headers_check   - Sanity check on exported headers'
+       @echo  '  headerdep       - Detect inclusion cycles in headers'; \
         echo  ''
        @echo  'Kernel packaging:'
        @$(MAKE) $(build)=$(package-dir) help
@@@ -1361,7 -1392,7 +1393,7 @@@ $(module-dirs): crmodverdir $(objtree)/
        $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
  
  modules: $(module-dirs)
-       @echo '  Building modules, stage 2.';
+       @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
  
  PHONY += modules_install
@@@ -1410,123 -1441,12 +1442,12 @@@ endif # KBUILD_EXTMO
  
  # Generate tags for editors
  # ---------------------------------------------------------------------------
+ quiet_cmd_tags = GEN     $@
+       cmd_tags = $(CONFIG_SHELL) $(srctree)/scripts/tags.sh $@
  
- #We want __srctree to totally vanish out when KBUILD_OUTPUT is not set
- #(which is the most common case IMHO) to avoid unneeded clutter in the big tags file.
- #Adding $(srctree) adds about 20M on i386 to the size of the output file!
- ifeq ($(src),$(obj))
- __srctree =
- else
- __srctree = $(srctree)/
- endif
- ifeq ($(ALLSOURCE_ARCHS),)
- ifeq ($(ARCH),um)
- ALLINCLUDE_ARCHS := $(ARCH) $(SUBARCH)
- else
- ALLINCLUDE_ARCHS := $(SRCARCH)
- endif
- else
- #Allow user to specify only ALLSOURCE_PATHS on the command line, keeping existing behaviour.
- ALLINCLUDE_ARCHS := $(ALLSOURCE_ARCHS)
- endif
- ALLSOURCE_ARCHS := $(SRCARCH)
- define find-sources
-         ( for arch in $(ALLSOURCE_ARCHS) ; do \
-              find $(__srctree)arch/$${arch} $(RCS_FIND_IGNORE) \
-                   -wholename $(__srctree)arch/$${arch}/include/asm -type d -prune \
-                   -o -name $1 -print; \
-         done ; \
-         find $(__srctree)security/selinux/include $(RCS_FIND_IGNORE) \
-              -name $1 -print; \
-         find $(__srctree)include $(RCS_FIND_IGNORE) \
-              \( -name config -o -name 'asm-*' \) -prune \
-              -o -name $1 -print; \
-         for arch in $(ALLINCLUDE_ARCHS) ; do \
-              test -e $(__srctree)include/asm-$${arch} && \
-                  find $(__srctree)include/asm-$${arch} $(RCS_FIND_IGNORE) \
-                   -name $1 -print; \
-              test -e $(__srctree)arch/$${arch}/include/asm && \
-                find $(__srctree)arch/$${arch}/include/asm $(RCS_FIND_IGNORE) \
-                   -name $1 -print; \
-         done ; \
-         find $(__srctree)include/asm-generic $(RCS_FIND_IGNORE) \
-              -name $1 -print; \
-         find $(__srctree) $(RCS_FIND_IGNORE) \
-              \( -name include -o -name arch -o -name '.tmp_*' \) -prune -o \
-              -name $1 -print; \
-         )
- endef
- define all-sources
-       $(call find-sources,'*.[chS]')
- endef
- define all-kconfigs
-       $(call find-sources,'Kconfig*')
- endef
- define all-defconfigs
-       $(call find-sources,'defconfig')
- endef
- define xtags
-       if $1 --version 2>&1 | grep -iq exuberant; then \
-           $(all-sources) | xargs $1 -a \
-               -I __initdata,__exitdata,__acquires,__releases \
-               -I __read_mostly,____cacheline_aligned,____cacheline_aligned_in_smp,____cacheline_internodealigned_in_smp \
-               -I EXPORT_SYMBOL,EXPORT_SYMBOL_GPL \
-               --extra=+f --c-kinds=+px \
-               --regex-asm='/^ENTRY\(([^)]*)\).*/\1/'; \
-           $(all-kconfigs) | xargs $1 -a \
-               --langdef=kconfig \
-               --language-force=kconfig \
-               --regex-kconfig='/^[[:blank:]]*(menu|)config[[:blank:]]+([[:alnum:]_]+)/\2/'; \
-           $(all-defconfigs) | xargs -r $1 -a \
-               --langdef=dotconfig \
-               --language-force=dotconfig \
-               --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'; \
-       elif $1 --version 2>&1 | grep -iq emacs; then \
-           $(all-sources) | xargs $1 -a; \
-           $(all-kconfigs) | xargs $1 -a \
-               --regex='/^[ \t]*\(\(menu\)*config\)[ \t]+\([a-zA-Z0-9_]+\)/\3/'; \
-           $(all-defconfigs) | xargs -r $1 -a \
-               --regex='/^#?[ \t]?\(CONFIG_[a-zA-Z0-9_]+\)/\1/'; \
-       else \
-           $(all-sources) | xargs $1 -a; \
-       fi
- endef
- quiet_cmd_cscope-file = FILELST cscope.files
-       cmd_cscope-file = (echo \-k; echo \-q; $(all-sources)) > cscope.files
- quiet_cmd_cscope = MAKE    cscope.out
-       cmd_cscope = cscope -b -f cscope.out
- cscope: FORCE
-       $(call cmd,cscope-file)
-       $(call cmd,cscope)
- quiet_cmd_TAGS = MAKE   $@
- define cmd_TAGS
-       rm -f $@; \
-       $(call xtags,etags)
- endef
- TAGS: FORCE
-       $(call cmd,TAGS)
- quiet_cmd_tags = MAKE   $@
- define cmd_tags
-       rm -f $@; \
-       $(call xtags,ctags)
- endef
- tags: FORCE
+ tags TAGS cscope: FORCE
        $(call cmd,tags)
  
  # Scripts to check various things for consistency
  # ---------------------------------------------------------------------------
  
@@@ -1605,7 -1525,11 +1526,11 @@@ endi
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  
  # Modules
- / %/: prepare scripts FORCE
+ /: prepare scripts FORCE
+       $(cmd_crmodverdir)
+       $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
+       $(build)=$(build-dir)
+ %/: prepare scripts FORCE
        $(cmd_crmodverdir)
        $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
        $(build)=$(build-dir)
@@@ -1639,7 -1563,7 +1564,7 @@@ cmd_crmodverdir = $(Q)mkdir -p $(MODVER
                    $(if $(KBUILD_MODULES),; rm -f $(MODVERDIR)/*)
  
  a_flags = -Wp,-MD,$(depfile) $(KBUILD_AFLAGS) $(AFLAGS_KERNEL) \
-         $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \
+         $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(KBUILD_CPPFLAGS) \
          $(modkern_aflags) $(EXTRA_AFLAGS) $(AFLAGS_$(basetarget).o)
  
  quiet_cmd_as_o_S = AS      $@
  
  #include <asm/oplib.h>
  #include <asm/idprom.h>
 -#include <asm/machines.h>  /* Fun with Sun released architectures. */
  
  struct idprom *idprom;
  static struct idprom idprom_buffer;
  
 +#ifdef CONFIG_SPARC32
 +#include <asm/machines.h>  /* Fun with Sun released architectures. */
 +
  /* Here is the master table of Sun machines which use some implementation
   * of the Sparc CPU and have a meaningful IDPROM machtype value that we
   * know about.  See asm-sparc/machines.h for empirical constants.
   */
  static struct Sun_Machine_Models Sun_Machines[NUM_SUN_MACHINES] = {
  /* First, Sun4's */
 -{ "Sun 4/100 Series", (SM_SUN4 | SM_4_110) },
 -{ "Sun 4/200 Series", (SM_SUN4 | SM_4_260) },
 -{ "Sun 4/300 Series", (SM_SUN4 | SM_4_330) },
 -{ "Sun 4/400 Series", (SM_SUN4 | SM_4_470) },
 +{ .name = "Sun 4/100 Series",        .id_machtype = (SM_SUN4 | SM_4_110) },
 +{ .name = "Sun 4/200 Series",        .id_machtype = (SM_SUN4 | SM_4_260) },
 +{ .name = "Sun 4/300 Series",        .id_machtype = (SM_SUN4 | SM_4_330) },
 +{ .name = "Sun 4/400 Series",        .id_machtype = (SM_SUN4 | SM_4_470) },
  /* Now, Sun4c's */
 -{ "Sun4c SparcStation 1", (SM_SUN4C | SM_4C_SS1) },
 -{ "Sun4c SparcStation IPC", (SM_SUN4C | SM_4C_IPC) },
 -{ "Sun4c SparcStation 1+", (SM_SUN4C | SM_4C_SS1PLUS) },
 -{ "Sun4c SparcStation SLC", (SM_SUN4C | SM_4C_SLC) },
 -{ "Sun4c SparcStation 2", (SM_SUN4C | SM_4C_SS2) },
 -{ "Sun4c SparcStation ELC", (SM_SUN4C | SM_4C_ELC) },
 -{ "Sun4c SparcStation IPX", (SM_SUN4C | SM_4C_IPX) },
 +{ .name = "Sun4c SparcStation 1",    .id_machtype = (SM_SUN4C | SM_4C_SS1) },
 +{ .name = "Sun4c SparcStation IPC",  .id_machtype = (SM_SUN4C | SM_4C_IPC) },
 +{ .name = "Sun4c SparcStation 1+",   .id_machtype = (SM_SUN4C | SM_4C_SS1PLUS) },
 +{ .name = "Sun4c SparcStation SLC",  .id_machtype = (SM_SUN4C | SM_4C_SLC) },
 +{ .name = "Sun4c SparcStation 2",    .id_machtype = (SM_SUN4C | SM_4C_SS2) },
 +{ .name = "Sun4c SparcStation ELC",  .id_machtype = (SM_SUN4C | SM_4C_ELC) },
 +{ .name = "Sun4c SparcStation IPX",  .id_machtype = (SM_SUN4C | SM_4C_IPX) },
  /* Finally, early Sun4m's */
 -{ "Sun4m SparcSystem600", (SM_SUN4M | SM_4M_SS60) },
 -{ "Sun4m SparcStation10/20", (SM_SUN4M | SM_4M_SS50) },
 -{ "Sun4m SparcStation5", (SM_SUN4M | SM_4M_SS40) },
 +{ .name = "Sun4m SparcSystem600",    .id_machtype = (SM_SUN4M | SM_4M_SS60) },
 +{ .name = "Sun4m SparcStation10/20", .id_machtype = (SM_SUN4M | SM_4M_SS50) },
 +{ .name = "Sun4m SparcStation5",     .id_machtype = (SM_SUN4M | SM_4M_SS40) },
  /* One entry for the OBP arch's which are sun4d, sun4e, and newer sun4m's */
 -{ "Sun4M OBP based system", (SM_SUN4M_OBP | 0x0) } };
 +{ .name = "Sun4M OBP based system",  .id_machtype = (SM_SUN4M_OBP | 0x0) } };
  
  static void __init display_system_type(unsigned char machtype)
  {
        register int i;
  
        for (i = 0; i < NUM_SUN_MACHINES; i++) {
 -              if(Sun_Machines[i].id_machtype == machtype) {
 +              if (Sun_Machines[i].id_machtype == machtype) {
                        if (machtype != (SM_SUN4M_OBP | 0x00) ||
                            prom_getproperty(prom_root_node, "banner-name",
                                             sysname, sizeof(sysname)) <= 0)
 -                              printk("TYPE: %s\n", Sun_Machines[i].name);
 +                              printk(KERN_WARNING "TYPE: %s\n",
 +                                     Sun_Machines[i].name);
                        else
 -                              printk("TYPE: %s\n", sysname);
 +                              printk(KERN_WARNING "TYPE: %s\n", sysname);
                        return;
                }
        }
  
 -      prom_printf("IDPROM: Bogus id_machtype value, 0x%x\n", machtype);
 -      prom_halt();
 +      prom_printf("IDPROM: Warning, bogus id_machtype value, 0x%x\n", machtype);
  }
 -
 +#else
 +static void __init display_system_type(unsigned char machtype)
 +{
 +}
 +#endif
  /* Calculate the IDPROM checksum (xor of the data bytes). */
  static unsigned char __init calc_idprom_cksum(struct idprom *idprom)
  {
@@@ -86,17 -80,21 +86,14 @@@ void __init idprom_init(void
  
        idprom = &idprom_buffer;
  
 -      if (idprom->id_format != 0x01)  {
 -              prom_printf("IDPROM: Unknown format type!\n");
 -              prom_halt();
 -      }
 +      if (idprom->id_format != 0x01)
 +              prom_printf("IDPROM: Warning, unknown format type!\n");
  
 -      if (idprom->id_cksum != calc_idprom_cksum(idprom)) {
 -              prom_printf("IDPROM: Checksum failure (nvram=%x, calc=%x)!\n",
 +      if (idprom->id_cksum != calc_idprom_cksum(idprom))
 +              prom_printf("IDPROM: Warning, checksum failure (nvram=%x, calc=%x)!\n",
                            idprom->id_cksum, calc_idprom_cksum(idprom));
  
        display_system_type(idprom->id_machtype);
  
-       printk(KERN_WARNING "Ethernet address: %02x:%02x:%02x:%02x:%02x:%02x\n",
-                   idprom->id_ethaddr[0], idprom->id_ethaddr[1],
-                   idprom->id_ethaddr[2], idprom->id_ethaddr[3],
-                   idprom->id_ethaddr[4], idprom->id_ethaddr[5]);
 -      printk("Ethernet address: %x:%x:%x:%x:%x:%x\n",
 -                  idprom->id_ethaddr[0], idprom->id_ethaddr[1],
 -                  idprom->id_ethaddr[2], idprom->id_ethaddr[3],
 -                  idprom->id_ethaddr[4], idprom->id_ethaddr[5]);
++      printk(KERN_WARNING "Ethernet address: %pM\n", idprom->id_ethaddr);
  }
diff --combined kernel/sysctl.c
@@@ -121,10 -121,6 +121,10 @@@ extern int sg_big_buff
  #include <asm/system.h>
  #endif
  
 +#ifdef CONFIG_SPARC64
 +extern int sysctl_tsb_ratio;
 +#endif
 +
  #ifdef __hppa__
  extern int pwrsw_enabled;
  extern int unaligned_enabled;
@@@ -455,16 -451,6 +455,16 @@@ static struct ctl_table kern_table[] = 
                .proc_handler   = &proc_dointvec,
        },
  #endif
 +#ifdef CONFIG_SPARC64
 +      {
 +              .ctl_name       = CTL_UNNUMBERED,
 +              .procname       = "tsb-ratio",
 +              .data           = &sysctl_tsb_ratio,
 +              .maxlen         = sizeof (int),
 +              .mode           = 0644,
 +              .proc_handler   = &proc_dointvec,
 +      },
 +#endif
  #ifdef __hppa__
        {
                .ctl_name       = KERN_HPPA_PWRSW,
                .proc_handler   = &ftrace_enable_sysctl,
        },
  #endif
+ #ifdef CONFIG_STACK_TRACER
+       {
+               .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "stack_tracer_enabled",
+               .data           = &stack_tracer_enabled,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = &stack_trace_sysctl,
+       },
+ #endif
+ #ifdef CONFIG_TRACING
+       {
+               .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "ftrace_dump_on_oops",
+               .data           = &ftrace_dump_on_oops,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec,
+       },
+ #endif
  #ifdef CONFIG_MODULES
        {
                .ctl_name       = KERN_MODPROBE,
@@@ -1665,7 -1671,7 +1685,7 @@@ out
  
  static int test_perm(int mode, int op)
  {
-       if (!current->euid)
+       if (!current_euid())
                mode >>= 6;
        else if (in_egroup_p(0))
                mode >>= 3;