Merge tag 'driver-core-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jul 2013 18:44:19 +0000 (11:44 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jul 2013 18:44:19 +0000 (11:44 -0700)
Pull driver core updates from Greg KH:
 "Here's the big driver core merge for 3.11-rc1

  Lots of little things, and larger firmware subsystem updates, all
  described in the shortlog.  Nice thing here is that we finally get rid
  of CONFIG_HOTPLUG, after 10+ years, thanks to Stephen Rohtwell (it had
  been always on for a number of kernel releases, now it's just
  removed)"

* tag 'driver-core-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (27 commits)
  driver core: device.h: fix doc compilation warnings
  firmware loader: fix another compile warning with PM_SLEEP unset
  build some drivers only when compile-testing
  firmware loader: fix compile warning with PM_SLEEP set
  kobject: sanitize argument for format string
  sysfs_notify is only possible on file attributes
  firmware loader: simplify holding module for request_firmware
  firmware loader: don't export cache_firmware and uncache_firmware
  drivers/base: Use attribute groups to create sysfs memory files
  firmware loader: fix compile warning
  firmware loader: fix build failure with !CONFIG_FW_LOADER_USER_HELPER
  Documentation: Updated broken link in HOWTO
  Finally eradicate CONFIG_HOTPLUG
  driver core: firmware loader: kill FW_ACTION_NOHOTPLUG requests before suspend
  driver core: firmware loader: don't cache FW_ACTION_NOHOTPLUG firmware
  Documentation: Tidy up some drivers/base/core.c kerneldoc content.
  platform_device: use a macro instead of platform_driver_register
  firmware: move EXPORT_SYMBOL annotations
  firmware: Avoid deadlock of usermodehelper lock at shutdown
  dell_rbu: Select CONFIG_FW_LOADER_USER_HELPER explicitly
  ...

1  2 
arch/arm/Kconfig
drivers/misc/Kconfig
drivers/pcmcia/Kconfig
fs/sysfs/dir.c

diff --combined arch/arm/Kconfig
index 136f263ed47b79d010cf4ca06e7b1e2a07e4fd73,0a20413b754666cf44d3ef7dc7cc0aab2b1f02c2..b5190158ceaf11e6277711638398c30649c73880
@@@ -1087,20 -1087,6 +1087,20 @@@ if !MM
  source "arch/arm/Kconfig-nommu"
  endif
  
 +config PJ4B_ERRATA_4742
 +      bool "PJ4B Errata 4742: IDLE Wake Up Commands can Cause the CPU Core to Cease Operation"
 +      depends on CPU_PJ4B && MACH_ARMADA_370
 +      default y
 +      help
 +        When coming out of either a Wait for Interrupt (WFI) or a Wait for
 +        Event (WFE) IDLE states, a specific timing sensitivity exists between
 +        the retiring WFI/WFE instructions and the newly issued subsequent
 +        instructions.  This sensitivity can result in a CPU hang scenario.
 +        Workaround:
 +        The software must insert either a Data Synchronization Barrier (DSB)
 +        or Data Memory Barrier (DMB) command immediately after the WFI/WFE
 +        instruction
 +
  config ARM_ERRATA_326103
        bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory"
        depends on CPU_V6
@@@ -1552,7 -1538,7 +1552,7 @@@ config NR_CPU
  
  config HOTPLUG_CPU
        bool "Support for hot-pluggable CPUs"
-       depends on SMP && HOTPLUG
+       depends on SMP
        help
          Say Y here to experiment with turning CPUs off and on.  CPUs
          can be controlled through /sys/devices/system/cpu.
diff --combined drivers/misc/Kconfig
index 80889d5f95f5f1d643533fe7cd6b99e4171fb0d2,e23df6cf710d3fba091fb0acf3f6b1c537e4c8a5..8dacd4c9ee8745f6449aaff8f6e9c03a4dd20341
@@@ -135,7 -135,7 +135,7 @@@ config PHANTO
  
  config INTEL_MID_PTI
        tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard"
-       depends on PCI && TTY
+       depends on PCI && TTY && (X86_INTEL_MID || COMPILE_TEST)
        default n
        help
          The PTI (Parallel Trace Interface) driver directs
@@@ -480,7 -480,6 +480,7 @@@ config BMP085_SP
  
  config PCH_PHUB
        tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB"
 +      select GENERIC_NET_UTILS
        depends on PCI
        help
          This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
diff --combined drivers/pcmcia/Kconfig
index 6f6193168281a15ab8dbf4d2aa9788470fb47233,1c6362491bdf63b38cbf35cde1827673b46d532f..0c657d6af03d404fa59aea5aba5430a92359b52d
@@@ -4,7 -4,6 +4,6 @@@
  
  menuconfig PCCARD
        tristate "PCCard (PCMCIA/CardBus) support"
-       depends on HOTPLUG
        ---help---
          Say Y here if you want to attach PCMCIA- or PC-cards to your Linux
          computer.  These are credit-card size devices such as network cards,
@@@ -243,7 -242,7 +242,7 @@@ config PCMCIA_DEBU
  
  config PCMCIA_PROBE
        bool
 -      default y if ISA && !ARCH_SA1100 && !ARCH_CLPS711X && !PARISC
 +      default y if ISA && !ARCH_SA1100 && !PARISC
  
  config M32R_PCC
        bool "M32R PCMCIA I/F"
@@@ -288,7 -287,7 +287,7 @@@ config BFIN_CFPCMCI
  
  config AT91_CF
        tristate "AT91 CompactFlash Controller"
 -      depends on PCMCIA && ARCH_AT91RM9200
 +      depends on PCMCIA && ARCH_AT91
        help
          Say Y here to support the CompactFlash controller on AT91 chips.
          Or choose M to compile the driver as a module named "at91_cf".
diff --combined fs/sysfs/dir.c
index 4cfd742d260d6015b17973e68a6ed8d098b5159d,17c9a70f4a2749c7880fd025a3cda4151d8eb6d9..e068e744dbddf4a4c1e43b00720d7c8ec24cae8b
@@@ -74,7 -74,7 +74,7 @@@ static int sysfs_sd_compare(const struc
  }
  
  /**
-  *    sysfs_link_subling - link sysfs_dirent into sibling rbtree
+  *    sysfs_link_sibling - link sysfs_dirent into sibling rbtree
   *    @sd: sysfs_dirent of interest
   *
   *    Link @sd into its sibling rbtree which starts from
@@@ -998,38 -998,68 +998,38 @@@ static struct sysfs_dirent *sysfs_dir_n
        return pos;
  }
  
 -static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir)
 +static int sysfs_readdir(struct file *file, struct dir_context *ctx)
  {
 -      struct dentry *dentry = filp->f_path.dentry;
 +      struct dentry *dentry = file->f_path.dentry;
        struct sysfs_dirent * parent_sd = dentry->d_fsdata;
 -      struct sysfs_dirent *pos = filp->private_data;
 +      struct sysfs_dirent *pos = file->private_data;
        enum kobj_ns_type type;
        const void *ns;
 -      ino_t ino;
 -      loff_t off;
  
        type = sysfs_ns_type(parent_sd);
        ns = sysfs_info(dentry->d_sb)->ns[type];
  
 -      if (filp->f_pos == 0) {
 -              ino = parent_sd->s_ino;
 -              if (filldir(dirent, ".", 1, filp->f_pos, ino, DT_DIR) == 0)
 -                      filp->f_pos++;
 -              else
 -                      return 0;
 -      }
 -      if (filp->f_pos == 1) {
 -              if (parent_sd->s_parent)
 -                      ino = parent_sd->s_parent->s_ino;
 -              else
 -                      ino = parent_sd->s_ino;
 -              if (filldir(dirent, "..", 2, filp->f_pos, ino, DT_DIR) == 0)
 -                      filp->f_pos++;
 -              else
 -                      return 0;
 -      }
 +      if (!dir_emit_dots(file, ctx))
 +              return 0;
        mutex_lock(&sysfs_mutex);
 -      off = filp->f_pos;
 -      for (pos = sysfs_dir_pos(ns, parent_sd, filp->f_pos, pos);
 +      for (pos = sysfs_dir_pos(ns, parent_sd, ctx->pos, pos);
             pos;
 -           pos = sysfs_dir_next_pos(ns, parent_sd, filp->f_pos, pos)) {
 -              const char * name;
 -              unsigned int type;
 -              int len, ret;
 -
 -              name = pos->s_name;
 -              len = strlen(name);
 -              ino = pos->s_ino;
 -              type = dt_type(pos);
 -              off = filp->f_pos = pos->s_hash;
 -              filp->private_data = sysfs_get(pos);
 +           pos = sysfs_dir_next_pos(ns, parent_sd, ctx->pos, pos)) {
 +              const char *name = pos->s_name;
 +              unsigned int type = dt_type(pos);
 +              int len = strlen(name);
 +              ino_t ino = pos->s_ino;
 +              ctx->pos = pos->s_hash;
 +              file->private_data = sysfs_get(pos);
  
                mutex_unlock(&sysfs_mutex);
 -              ret = filldir(dirent, name, len, off, ino, type);
 +              if (!dir_emit(ctx, name, len, ino, type))
 +                      return 0;
                mutex_lock(&sysfs_mutex);
 -              if (ret < 0)
 -                      break;
        }
        mutex_unlock(&sysfs_mutex);
 -
 -      /* don't reference last entry if its refcount is dropped */
 -      if (!pos) {
 -              filp->private_data = NULL;
 -
 -              /* EOF and not changed as 0 or 1 in read/write path */
 -              if (off == filp->f_pos && off > 1)
 -                      filp->f_pos = INT_MAX;
 -      }
 +      file->private_data = NULL;
 +      ctx->pos = INT_MAX;
        return 0;
  }
  
@@@ -1047,7 -1077,7 +1047,7 @@@ static loff_t sysfs_dir_llseek(struct f
  
  const struct file_operations sysfs_dir_operations = {
        .read           = generic_read_dir,
 -      .readdir        = sysfs_readdir,
 +      .iterate        = sysfs_readdir,
        .release        = sysfs_dir_release,
        .llseek         = sysfs_dir_llseek,
  };
This page took 0.037159 seconds and 5 git commands to generate.