Merge commit 'v2.6.35-rc3' into perf/core
Ingo Molnar [Fri, 18 Jun 2010 08:53:12 +0000 (10:53 +0200)]
Merge reason: Go from -rc1 base to -rc3 base, merge in fixes.

1  2 
MAINTAINERS
Makefile
kernel/sched.c

diff --combined MAINTAINERS
@@@ -1731,7 -1731,7 +1731,7 @@@ S:      Maintaine
  F:    sound/pci/cs5535audio/
  
  CX18 VIDEO4LINUX DRIVER
- M:    Andy Walls <awalls@radix.net>
+ M:    Andy Walls <awalls@md.metrocast.net>
  L:    ivtv-devel@ivtvdriver.org (moderated for non-subscribers)
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
@@@ -2978,7 -2978,6 +2978,6 @@@ F:      drivers/net/ixgb
  F:    drivers/net/ixgbe/
  
  INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
- M:    Zhu Yi <yi.zhu@intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
  M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
@@@ -2988,7 -2987,6 +2987,6 @@@ F:      Documentation/networking/README.ipw2
  F:    drivers/net/wireless/ipw2x00/ipw2100.*
  
  INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
- M:    Zhu Yi <yi.zhu@intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
  M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
@@@ -3019,8 -3017,8 +3017,8 @@@ F:      drivers/net/wimax/i2400m
  F:    include/linux/wimax/i2400m.h
  
  INTEL WIRELESS WIFI LINK (iwlwifi)
- M:    Zhu Yi <yi.zhu@intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
+ M:    Wey-Yi Guy <wey-yi.w.guy@intel.com>
  M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
  W:    http://intellinuxwireless.org
@@@ -3030,7 -3028,6 +3028,6 @@@ F:      drivers/net/wireless/iwlwifi
  
  INTEL WIRELESS MULTICOMM 3200 WIFI (iwmc3200wifi)
  M:    Samuel Ortiz <samuel.ortiz@intel.com>
- M:    Zhu Yi <yi.zhu@intel.com>
  M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
@@@ -3165,7 -3162,7 +3162,7 @@@ F:      Documentation/hwmon/it8
  F:    drivers/hwmon/it87.c
  
  IVTV VIDEO4LINUX DRIVER
- M:    Andy Walls <awalls@radix.net>
+ M:    Andy Walls <awalls@md.metrocast.net>
  L:    ivtv-devel@ivtvdriver.org (moderated for non-subscribers)
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
@@@ -3242,7 -3239,7 +3239,7 @@@ L:      autofs@linux.kernel.or
  S:    Maintained
  F:    fs/autofs4/
  
- KERNEL BUILD
+ KERNEL BUILD + files below scripts/ (unless maintained elsewhere)
  M:    Michal Marek <mmarek@suse.cz>
  T:    git git://repo.or.cz/linux-kbuild.git for-next
  T:    git git://repo.or.cz/linux-kbuild.git for-linus
@@@ -3251,6 -3248,9 +3248,9 @@@ S:      Maintaine
  F:    Documentation/kbuild/
  F:    Makefile
  F:    scripts/Makefile.*
+ F:    scripts/basic/
+ F:    scripts/mk*
+ F:    scripts/package/
  
  KERNEL JANITORS
  L:    kernel-janitors@vger.kernel.org
@@@ -3368,6 -3368,13 +3368,6 @@@ F:     include/linux/kmemleak.
  F:    mm/kmemleak.c
  F:    mm/kmemleak-test.c
  
 -KMEMTRACE
 -M:    Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
 -S:    Maintained
 -F:    Documentation/trace/kmemtrace.txt
 -F:    include/linux/kmemtrace.h
 -F:    kernel/trace/kmemtrace.c
 -
  KPROBES
  M:    Ananth N Mavinakayanahalli <ananth@in.ibm.com>
  M:    Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
@@@ -3493,9 -3500,8 +3493,8 @@@ F:      arch/powerpc/platforms/83xx
  
  LINUX FOR POWERPC PA SEMI PWRFICIENT
  M:    Olof Johansson <olof@lixom.net>
- W:    http://www.pasemi.com/
  L:    linuxppc-dev@ozlabs.org
- S:    Supported
+ S:    Maintained
  F:    arch/powerpc/platforms/pasemi/
  F:    drivers/*/*pasemi*
  F:    drivers/*/*/*pasemi*
diff --combined Makefile
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 35
- EXTRAVERSION = -rc1
+ EXTRAVERSION = -rc3
  NAME = Sheep on Meth
  
  # *DOCUMENTATION*
@@@ -183,11 -183,14 +183,14 @@@ SUBARCH := $(shell uname -m | sed -e s/
  # CROSS_COMPILE can be set on the command line
  # make CROSS_COMPILE=ia64-linux-
  # Alternatively CROSS_COMPILE can be set in the environment.
+ # A third alternative is to store a setting in .config so that plain
+ # "make" in the configured kernel build directory always uses that.
  # Default value for CROSS_COMPILE is not to prefix executables
  # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
  export KBUILD_BUILDHOST := $(SUBARCH)
  ARCH          ?= $(SUBARCH)
  CROSS_COMPILE ?=
+ CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
  
  # Architecture as present in compile.h
  UTS_MACHINE   := $(ARCH)
@@@ -411,7 -414,7 +414,7 @@@ endi
  no-dot-config-targets := clean mrproper distclean \
                         cscope TAGS tags help %docs check% \
                         include/linux/version.h headers_% \
 -                       kernelrelease kernelversion
 +                       kernelrelease kernelversion %src-pkg
  
  config-targets := 0
  mixed-targets  := 0
@@@ -576,9 -579,6 +579,6 @@@ KBUILD_CFLAGS += $(call cc-option,-Wno-
  # disable invalid "can't wrap" optimizations for signed / pointers
  KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
  
- # revert to pre-gcc-4.4 behaviour of .eh_frame
- KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm)
  # conserve stack if available
  KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
  
@@@ -882,9 -882,6 +882,6 @@@ $(sort $(vmlinux-init) $(vmlinux-main)
  PHONY += $(vmlinux-dirs)
  $(vmlinux-dirs): prepare scripts
        $(Q)$(MAKE) $(build)=$@
- ifdef CONFIG_MODULES
-       $(Q)$(MAKE) $(modbuiltin)=$@
- endif
  
  # Build the kernel release string
  #
  #       $(localver)
  #         localversion*               (files without backups, containing '~')
  #         $(CONFIG_LOCALVERSION)      (from kernel config setting)
- #       $(localver-auto)              (only if CONFIG_LOCALVERSION_AUTO is set)
- #         ./scripts/setlocalversion   (SCM tag, if one exists)
- #         $(LOCALVERSION)             (from make command line if provided)
+ #       $(LOCALVERSION)               (from make command line, if provided)
+ #       $(localver-extra)
+ #         $(scm-identifier)           (unique SCM tag, if one exists)
+ #           ./scripts/setlocalversion (only with CONFIG_LOCALVERSION_AUTO)
+ #           .scmversion               (only with CONFIG_LOCALVERSION_AUTO)
+ #         +                           (only without CONFIG_LOCALVERSION_AUTO
+ #                                      and without LOCALVERSION= and
+ #                                      repository is at non-tagged commit)
  #
- #  Note how the final $(localver-auto) string is included *only* if the
- # kernel config option CONFIG_LOCALVERSION_AUTO is selected.  Also, at the
- # moment, only git is supported but other SCMs can edit the script
- # scripts/setlocalversion and add the appropriate checks as needed.
+ # For kernels without CONFIG_LOCALVERSION_AUTO compiled from an SCM that has
+ # been revised beyond a tagged commit, `+' is appended to the version string
+ # when not overridden by using "make LOCALVERSION=".  This indicates that the
+ # kernel is not a vanilla release version and has been modified.
  
  pattern = ".*/localversion[^~]*"
  string  = $(shell cat /dev/null \
  localver = $(subst $(space),, $(string) \
                              $(patsubst "%",%,$(CONFIG_LOCALVERSION)))
  
- # If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called
- # and if the SCM is know a tag from the SCM is appended.
- # The appended tag is determined by the SCM used.
+ # scripts/setlocalversion is called to create a unique identifier if the source
+ # is managed by a known SCM and the repository has been revised since the last
+ # tagged (release) commit.  The format of the identifier is determined by the
+ # SCM's implementation.
  #
  # .scmversion is used when generating rpm packages so we do not loose
  # the version information from the SCM when we do the build of the kernel
  # from the copied source
- ifdef CONFIG_LOCALVERSION_AUTO
  ifeq ($(wildcard .scmversion),)
-         _localver-auto = $(shell $(CONFIG_SHELL) \
+         scm-identifier = $(shell $(CONFIG_SHELL) \
                           $(srctree)/scripts/setlocalversion $(srctree))
  else
-         _localver-auto = $(shell cat .scmversion 2> /dev/null)
+         scm-identifier = $(shell cat .scmversion 2> /dev/null)
  endif
  
-       localver-auto  = $(LOCALVERSION)$(_localver-auto)
+ ifdef CONFIG_LOCALVERSION_AUTO
+       localver-extra = $(scm-identifier)
+ else
+       ifneq ($(scm-identifier),)
+               ifeq ($(LOCALVERSION),)
+                       localver-extra = +
+               endif
+       endif
  endif
  
- localver-full = $(localver)$(localver-auto)
+ localver-full = $(localver)$(LOCALVERSION)$(localver-extra)
  
  # Store (new) KERNELRELASE string in include/config/kernel.release
  kernelrelease = $(KERNELVERSION)$(localver-full)
@@@ -1087,13 -1095,18 +1095,18 @@@ all: module
  #     using awk while concatenating to the final file.
  
  PHONY += modules
- modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
+ modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
        $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
-       $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.builtin) > $(objtree)/modules.builtin
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
  
+ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
+       $(Q)$(AWK) '!x[$$0]++' $^ > $(objtree)/modules.builtin
+ %/modules.builtin: include/config/auto.conf
+       $(Q)$(MAKE) $(modbuiltin)=$*
  
  # Target to prepare building external modules
  PHONY += modules_prepare
@@@ -1215,8 -1228,6 +1228,8 @@@ distclean: mrprope
  # rpm target kept for backward compatibility
  package-dir   := $(srctree)/scripts/package
  
 +%src-pkg: FORCE
 +      $(Q)$(MAKE) $(build)=$(package-dir) $@
  %pkg: include/config/kernel.release FORCE
        $(Q)$(MAKE) $(build)=$(package-dir) $@
  rpm: include/config/kernel.release FORCE
@@@ -1249,7 -1260,9 +1262,9 @@@ help
        @echo  '  firmware_install- Install all firmware to INSTALL_FW_PATH'
        @echo  '                    (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
        @echo  '  dir/            - Build all files in dir and below'
-       @echo  '  dir/file.[ois]  - Build specified target only'
+       @echo  '  dir/file.[oisS] - Build specified target only'
+       @echo  '  dir/file.lst    - Build specified mixed source/assembly target only'
+       @echo  '                    (requires a recent binutils and recent build (System.map))'
        @echo  '  dir/file.ko     - Build module including final link'
        @echo  '  modules_prepare - Set up for building external modules'
        @echo  '  tags/TAGS       - Generate tags file for editors'
diff --combined kernel/sched.c
@@@ -544,6 -544,8 +544,8 @@@ struct rq 
        struct root_domain *rd;
        struct sched_domain *sd;
  
+       unsigned long cpu_power;
        unsigned char idle_at_tick;
        /* For active balancing */
        int post_schedule;
@@@ -1499,24 -1501,9 +1501,9 @@@ static unsigned long target_load(int cp
        return max(rq->cpu_load[type-1], total);
  }
  
- static struct sched_group *group_of(int cpu)
- {
-       struct sched_domain *sd = rcu_dereference_sched(cpu_rq(cpu)->sd);
-       if (!sd)
-               return NULL;
-       return sd->groups;
- }
  static unsigned long power_of(int cpu)
  {
-       struct sched_group *group = group_of(cpu);
-       if (!group)
-               return SCHED_LOAD_SCALE;
-       return group->cpu_power;
+       return cpu_rq(cpu)->cpu_power;
  }
  
  static int task_hot(struct task_struct *p, u64 now, struct sched_domain *sd);
@@@ -1854,8 -1841,8 +1841,8 @@@ static void dec_nr_running(struct rq *r
  static void set_load_weight(struct task_struct *p)
  {
        if (task_has_rt_policy(p)) {
-               p->se.load.weight = prio_to_weight[0] * 2;
-               p->se.load.inv_weight = prio_to_wmult[0] >> 1;
+               p->se.load.weight = 0;
+               p->se.load.inv_weight = WMULT_CONST;
                return;
        }
  
@@@ -3730,7 -3717,7 +3717,7 @@@ int mutex_spin_on_owner(struct mutex *l
   * off of preempt_enable. Kernel preemptions off return from interrupt
   * occur there and call schedule directly.
   */
 -asmlinkage void __sched preempt_schedule(void)
 +asmlinkage void __sched notrace preempt_schedule(void)
  {
        struct thread_info *ti = current_thread_info();
  
                return;
  
        do {
 -              add_preempt_count(PREEMPT_ACTIVE);
 +              add_preempt_count_notrace(PREEMPT_ACTIVE);
                schedule();
 -              sub_preempt_count(PREEMPT_ACTIVE);
 +              sub_preempt_count_notrace(PREEMPT_ACTIVE);
  
                /*
                 * Check again in case we missed a preemption opportunity
@@@ -7605,6 -7592,7 +7592,7 @@@ void __init sched_init(void
  #ifdef CONFIG_SMP
                rq->sd = NULL;
                rq->rd = NULL;
+               rq->cpu_power = SCHED_LOAD_SCALE;
                rq->post_schedule = 0;
                rq->active_balance = 0;
                rq->next_balance = jiffies;