- Updated to 3.3-rc4.
authorJeff Mahoney <jeffm@suse.com>
Sun, 19 Feb 2012 17:00:16 +0000 (12:00 -0500)
committerJeff Mahoney <jeffm@suse.com>
Sun, 19 Feb 2012 17:00:16 +0000 (12:00 -0500)
suse-commit: 8831dca9fae1c3f016cf5b2e925529d56dc16661

1  2 
Makefile
drivers/base/cpu.c
drivers/macintosh/adb.c
drivers/misc/Kconfig
drivers/tty/serial/8250/8250.c
include/linux/blkdev.h
scripts/mod/file2alias.c

diff --combined Makefile
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 3
  PATCHLEVEL = 3
  SUBLEVEL = 0
- EXTRAVERSION = -rc3
+ EXTRAVERSION = -rc4
  NAME = Saber-toothed Squirrel
  
  # *DOCUMENTATION*
@@@ -65,20 -65,6 +65,20 @@@ ifndef KBUILD_CHECKSR
    KBUILD_CHECKSRC = 0
  endif
  
 +# Call message checker as part of the C compilation
 +#
 +# Use 'make D=1' to enable checking
 +# Use 'make D=2' to create the message catalog
 +
 +ifdef D
 +  ifeq ("$(origin D)", "command line")
 +    KBUILD_KMSG_CHECK = $(D)
 +  endif
 +endif
 +ifndef KBUILD_KMSG_CHECK
 +  KBUILD_KMSG_CHECK = 0
 +endif
 +
  # Use make M=dir to specify directory of external module to build
  # Old syntax make ... SUBDIRS=$PWD is still supported
  # Setting the environment variable KBUILD_EXTMOD take precedence
@@@ -361,7 -347,6 +361,7 @@@ CHECK              = spars
  
  CHECKFLAGS     := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
                  -Wbitwise -Wno-return-void $(CF)
 +KMSG_CHECK    = $(srctree)/scripts/kmsg-doc
  CFLAGS_MODULE   =
  AFLAGS_MODULE   =
  LDFLAGS_MODULE  =
@@@ -391,11 -376,6 +391,11 @@@ KBUILD_AFLAGS_MODULE  := -DMODUL
  KBUILD_CFLAGS_MODULE  := -DMODULE
  KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
  
 +# Warn about unsupported modules in kernels built inside Autobuild
 +ifneq ($(wildcard /.buildenv),)
 +CFLAGS                += -DUNSUPPORTED_MODULES=2
 +endif
 +
  # Read KERNELRELEASE from include/config/kernel.release (if it exists)
  KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
  KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
@@@ -412,7 -392,6 +412,7 @@@ export KBUILD_AFLAGS AFLAGS_KERNEL AFLA
  export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
  export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
  export KBUILD_ARFLAGS
 +export KBUILD_KMSG_CHECK KMSG_CHECK
  
  # When compiling out-of-tree modules, put MODVERDIR in the module
  # tree rather than in the kernel tree. The kernel tree might
@@@ -613,11 -592,6 +613,11 @@@ KBUILD_CFLAGS    += -fomit-frame-pointe
  endif
  endif
  
 +ifdef CONFIG_UNWIND_INFO
 +KBUILD_CFLAGS += -fasynchronous-unwind-tables
 +LDFLAGS_vmlinux       += --eh-frame-hdr
 +endif
 +
  ifdef CONFIG_DEBUG_INFO
  KBUILD_CFLAGS += -g
  KBUILD_AFLAGS += -gdwarf-2
@@@ -1053,7 -1027,7 +1053,7 @@@ depend dep
  
  # ---------------------------------------------------------------------------
  # Firmware install
 -INSTALL_FW_PATH=$(INSTALL_MOD_PATH)/lib/firmware
 +INSTALL_FW_PATH=$(INSTALL_MOD_PATH)/lib/firmware/$(KERNELRELEASE)
  export INSTALL_FW_PATH
  
  PHONY += firmware_install
diff --combined drivers/base/cpu.c
@@@ -11,7 -11,6 +11,7 @@@
  #include <linux/device.h>
  #include <linux/node.h>
  #include <linux/gfp.h>
 +#include <linux/slab.h>
  #include <linux/percpu.h>
  
  #include "base.h"
@@@ -209,6 -208,25 +209,25 @@@ static ssize_t print_cpus_offline(struc
  }
  static DEVICE_ATTR(offline, 0444, print_cpus_offline, NULL);
  
+ static void cpu_device_release(struct device *dev)
+ {
+       /*
+        * This is an empty function to prevent the driver core from spitting a
+        * warning at us.  Yes, I know this is directly opposite of what the
+        * documentation for the driver core and kobjects say, and the author
+        * of this code has already been publically ridiculed for doing
+        * something as foolish as this.  However, at this point in time, it is
+        * the only way to handle the issue of statically allocated cpu
+        * devices.  The different architectures will have their cpu device
+        * code reworked to properly handle this in the near future, so this
+        * function will then be changed to correctly free up the memory held
+        * by the cpu device.
+        *
+        * Never copy this way of doing things, or you too will be made fun of
+        * on the linux-kerenl list, you have been warned.
+        */
+ }
  /*
   * register_cpu - Setup a sysfs device for a CPU.
   * @cpu - cpu->hotpluggable field set to 1 will generate a control file in
@@@ -222,11 -240,10 +241,13 @@@ int __cpuinit register_cpu(struct cpu *
        int error;
  
        cpu->node_id = cpu_to_node(num);
+       memset(&cpu->dev, 0x00, sizeof(struct device));
        cpu->dev.id = num;
        cpu->dev.bus = &cpu_subsys;
+       cpu->dev.release = cpu_device_release;
 +#ifdef CONFIG_ARCH_HAS_CPU_AUTOPROBE
 +      cpu->dev.bus->uevent = arch_cpu_uevent;
 +#endif
        error = device_register(&cpu->dev);
        if (!error && cpu->hotpluggable)
                register_cpu_control(cpu);
@@@ -251,10 -268,6 +272,10 @@@ struct device *get_cpu_device(unsigned 
  }
  EXPORT_SYMBOL_GPL(get_cpu_device);
  
 +#ifdef CONFIG_ARCH_HAS_CPU_AUTOPROBE
 +static DEVICE_ATTR(modalias, 0444, arch_print_cpu_modalias, NULL);
 +#endif
 +
  static struct attribute *cpu_root_attrs[] = {
  #ifdef CONFIG_ARCH_CPU_PROBE_RELEASE
        &dev_attr_probe.attr,
        &cpu_attrs[2].attr.attr,
        &dev_attr_kernel_max.attr,
        &dev_attr_offline.attr,
 +#ifdef CONFIG_ARCH_HAS_CPU_AUTOPROBE
 +      &dev_attr_modalias.attr,
 +#endif
        NULL
  };
  
diff --combined drivers/macintosh/adb.c
@@@ -298,10 -298,6 +298,10 @@@ static int __init adb_init(void
        if (!machine_is(chrp) && !machine_is(powermac))
                return 0;
  #endif
 +#ifdef CONFIG_PPC64
 +      if (!machine_is(powermac))
 +              return 0;
 +#endif
  #ifdef CONFIG_MAC
        if (!MACH_IS_MAC)
                return 0;
@@@ -714,7 -710,7 +714,7 @@@ static ssize_t adb_read(struct file *fi
        req = NULL;
        spin_lock_irqsave(&state->lock, flags);
        add_wait_queue(&state->wait_queue, &wait);
-       current->state = TASK_INTERRUPTIBLE;
+       set_current_state(TASK_INTERRUPTIBLE);
  
        for (;;) {
                req = state->completed;
                spin_lock_irqsave(&state->lock, flags);
        }
  
-       current->state = TASK_RUNNING;
+       set_current_state(TASK_RUNNING);
        remove_wait_queue(&state->wait_queue, &wait);
        spin_unlock_irqrestore(&state->lock, flags);
        
diff --combined drivers/misc/Kconfig
@@@ -2,24 -2,14 +2,14 @@@
  # Misc strange devices
  #
  
- # This one has to live outside of the MISC_DEVICES conditional,
- # because it may be selected by drivers/platform/x86/hp_accel.
+ menu "Misc devices"
  config SENSORS_LIS3LV02D
        tristate
        depends on INPUT
        select INPUT_POLLDEV
        default n
  
- menuconfig MISC_DEVICES
-       bool "Misc devices"
-       ---help---
-         Say Y here to get to see options for device drivers from various
-         different categories. This option alone does not add any kernel code.
-         If you say N, all options in this submenu will be skipped and disabled.
- if MISC_DEVICES
  config AD525X_DPOT
        tristate "Analog Devices Digital Potentiometers"
        depends on (I2C || SPI) && SYSFS
@@@ -146,7 -136,7 +136,7 @@@ config PHANTO
  
  config INTEL_MID_PTI
        tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard"
 -      depends on PCI
 +      depends on X86_INTEL_MID
        default n
        help
          The PTI (Parallel Trace Interface) driver directs
@@@ -516,5 -506,4 +506,4 @@@ source "drivers/misc/ti-st/Kconfig
  source "drivers/misc/lis3lv02d/Kconfig"
  source "drivers/misc/carma/Kconfig"
  source "drivers/misc/altera-stapl/Kconfig"
- endif # MISC_DEVICES
+ endmenu
@@@ -45,7 -45,7 +45,7 @@@
  #include "8250.h"
  
  #ifdef CONFIG_SPARC
- #include "suncore.h"
+ #include "../suncore.h"
  #endif
  
  /*
@@@ -100,8 -100,6 +100,8 @@@ static unsigned int skip_txen_test; /* 
  #define CONFIG_SERIAL_MANY_PORTS 1
  #endif
  
 +#define arch_8250_sysrq_via_ctrl_o(a,b) 0
 +
  /*
   * HUB6 is always on.  This will be removed once the header
   * files have been cleaned.
@@@ -1390,11 -1388,7 +1390,11 @@@ serial8250_rx_chars(struct uart_8250_po
  
        do {
                if (likely(lsr & UART_LSR_DR))
 +              {
                        ch = serial_inp(up, UART_RX);
 +                      if (arch_8250_sysrq_via_ctrl_o(ch, &up->port))
 +                              goto ignore_char;
 +              }
                else
                        /*
                         * Intel 82571 has a Serial Over Lan device that will
diff --combined include/linux/blkdev.h
@@@ -399,9 -399,6 +399,6 @@@ struct request_queue 
        /* Throttle data */
        struct throtl_data *td;
  #endif
- #ifdef CONFIG_LOCKDEP
-       int                     ioc_release_depth;
- #endif
  };
  
  #define QUEUE_FLAG_QUEUED     1       /* uses generic tag queueing */
@@@ -982,11 -979,7 +979,11 @@@ extern int blk_verify_command(unsigned 
  enum blk_default_limits {
        BLK_MAX_SEGMENTS        = 128,
        BLK_SAFE_MAX_SECTORS    = 255,
 +#ifndef CONFIG_KERNEL_DESKTOP
 +      BLK_DEF_MAX_SECTORS     = 2048,
 +#else
        BLK_DEF_MAX_SECTORS     = 1024,
 +#endif
        BLK_MAX_SEGMENT_SIZE    = 65536,
        BLK_SEG_BOUNDARY_MASK   = 0xFFFFFFFFUL,
  };
diff --combined scripts/mod/file2alias.c
@@@ -932,7 -932,7 +932,7 @@@ static int do_isapnp_entry(const char *
                (id->function >> 12) & 0x0f, (id->function >> 8) & 0x0f);
        return 1;
  }
- ADD_TO_DEVTABLE("isa", struct isapnp_device_id, do_isapnp_entry);
+ ADD_TO_DEVTABLE("isapnp", struct isapnp_device_id, do_isapnp_entry);
  
  /*
   * Append a match expression for a single masked hex digit.
@@@ -1003,31 -1003,6 +1003,31 @@@ static int do_amba_entry(const char *fi
  }
  ADD_TO_DEVTABLE("amba", struct amba_id, do_amba_entry);
  
 +/* LOOKS like x86cpu:vendor:VVVV:family:FFFF:model:MMMM:feature:*,FEAT,*
 + * All fields are numbers. It would be nicer to use strings for vendor
 + * and feature, but getting those out of the build system here is too
 + * complicated.
 + */
 +
 +static int do_x86cpu_entry(const char *filename, struct x86_cpu_id *id,
 +                         char *alias)
 +{
 +      id->feature = TO_NATIVE(id->feature);
 +      id->family = TO_NATIVE(id->family);
 +      id->model = TO_NATIVE(id->model);
 +      id->vendor = TO_NATIVE(id->vendor);
 +
 +      strcpy(alias, "x86cpu:");
 +      ADD(alias, "vendor:",  id->vendor != X86_VENDOR_ANY, id->vendor);
 +      ADD(alias, ":family:", id->family != X86_FAMILY_ANY, id->family);
 +      ADD(alias, ":model:",  id->model  != X86_MODEL_ANY,  id->model);
 +      strcat(alias, ":feature:*");
 +      if (id->feature != X86_FEATURE_ANY)
 +              sprintf(alias + strlen(alias), "%04X*", id->feature);
 +      return 1;
 +}
 +ADD_TO_DEVTABLE("x86cpu", struct x86_cpu_id, do_x86cpu_entry);
 +
  /* Does namelen bytes of name exactly match the symbol? */
  static bool sym_is(const char *name, unsigned namelen, const char *symbol)
  {