Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial
Linus Torvalds [Mon, 21 Apr 2008 23:36:46 +0000 (16:36 -0700)]
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial: (24 commits)
  DOC:  A couple corrections and clarifications in USB doc.
  Generate a slightly more informative error msg for bad HZ
  fix typo "is" -> "if" in Makefile
  ext*: spelling fix prefered -> preferred
  DOCUMENTATION:  Use newer DEFINE_SPINLOCK macro in docs.
  KEYS:  Fix the comment to match the file name in rxrpc-type.h.
  RAID: remove trailing space from printk line
  DMA engine: typo fixes
  Remove unused MAX_NODES_SHIFT
  MAINTAINERS: Clarify access to OCFS2 development mailing list.
  V4L: Storage class should be before const qualifier (sn9c102)
  V4L: Storage class should be before const qualifier
  sonypi: Storage class should be before const qualifier
  intel_menlow: Storage class should be before const qualifier
  DVB: Storage class should be before const qualifier
  arm: Storage class should be before const qualifier
  ALSA: Storage class should be before const qualifier
  acpi: Storage class should be before const qualifier
  firmware_sample_driver.c: fix coding style
  MAINTAINERS: Add ati_remote2 driver
  ...

Fixed up trivial conflicts in firmware_sample_driver.c

1  2 
Documentation/DocBook/kernel-locking.tmpl
MAINTAINERS
arch/arm/mach-pxa/mfp-pxa3xx.c
include/linux/jiffies.h
kernel/stop_machine.c
mm/pdflush.c
samples/firmware_class/firmware_sample_driver.c

     </para>
     <para>
       The third type is a semaphore
 -     (<filename class="headerfile">include/asm/semaphore.h</filename>): it
 +     (<filename class="headerfile">include/linux/semaphore.h</filename>): it
       can have more than one holder at any time (the number decided at
       initialization time), although it is most commonly used as a
       single-holder lock (a mutex).  If you can't get a semaphore, your
       <para>
         If you have a data structure which is only ever accessed from
         user context, then you can use a simple semaphore
 -       (<filename>linux/asm/semaphore.h</filename>) to protect it.  This 
 +       (<filename>linux/linux/semaphore.h</filename>) to protect it.  This
         is the most trivial case: you initialize the semaphore to the number 
         of resources available (usually 1), and call
         <function>down_interruptible()</function> to grab the semaphore, and 
@@@ -854,7 -854,7 +854,7 @@@ The change is shown below, in standard 
   };
  
  -static DEFINE_MUTEX(cache_lock);
- +static spinlock_t cache_lock = SPIN_LOCK_UNLOCKED;
+ +static DEFINE_SPINLOCK(cache_lock);
   static LIST_HEAD(cache);
   static unsigned int cache_num = 0;
   #define MAX_CACHE_SIZE 10
@@@ -1238,7 -1238,7 +1238,7 @@@ Here is the "lock-per-object" implement
  -        int popularity;
   };
  
-  static spinlock_t cache_lock = SPIN_LOCK_UNLOCKED;
+  static DEFINE_SPINLOCK(cache_lock);
  @@ -77,6 +84,7 @@
           obj-&gt;id = id;
           obj-&gt;popularity = 0;
@@@ -1656,7 -1656,7 +1656,7 @@@ the amount of locking which needs to b
   #include &lt;linux/slab.h&gt;
   #include &lt;linux/string.h&gt;
  +#include &lt;linux/rcupdate.h&gt;
 - #include &lt;asm/semaphore.h&gt;
 + #include &lt;linux/semaphore.h&gt;
   #include &lt;asm/errno.h&gt;
  
   struct object
diff --combined MAINTAINERS
@@@ -486,12 -486,6 +486,12 @@@ M:       kernel@wantstofly.or
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  S:    Maintained
  
 +ARM/GUMSTIX MACHINE SUPPORT
 +P:    Steve Sakoman
 +M:    sakoman@gmail.com
 +L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 +S:    Maintained
 +
  ARM/HP JORNADA 7XX MACHINE SUPPORT
  P:      Kristoffer Ericson
  M:      kristoffer.ericson@gmail.com
@@@ -684,6 -678,11 +684,11 @@@ L:       linux-wireless@vger.kernel.or
  L:    ath5k-devel@lists.ath5k.org
  S:    Maintained
  
+ ATI_REMOTE2 DRIVER
+ P:    Ville Syrjala
+ M:    syrjala@sci.fi
+ S:    Maintained
  ATL1 ETHERNET DRIVER
  P:    Jay Cliburn
  M:    jcliburn@gmail.com
@@@ -2947,7 -2946,7 +2952,7 @@@ P:      Mark Fashe
  M:    mfasheh@suse.com
  P:    Joel Becker
  M:    joel.becker@oracle.com
- L:    ocfs2-devel@oss.oracle.com
+ L:    ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
  W:    http://oss.oracle.com/projects/ocfs2/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git
  S:    Supported
@@@ -3065,10 -3064,11 +3070,10 @@@ L:   linux-pci@atrey.karlin.mff.cuni.c
  S:    Supported
  
  PCI SUBSYSTEM
 -P:    Greg Kroah-Hartman
 -M:    gregkh@suse.de
 +P:    Jesse Barnes
 +M:    jbarnes@virtuousgeek.org
  L:    linux-kernel@vger.kernel.org
  L:    linux-pci@atrey.karlin.mff.cuni.cz
 -T:    quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
  S:    Supported
  
  PCI HOTPLUG CORE
@@@ -3609,11 -3609,6 +3614,11 @@@ M:    mhoffman@lightlink.co
  L:    lm-sensors@lm-sensors.org
  S:    Maintained
  
 +SMX UIO Interface
 +P:    Ben Nizette
 +M:    bn@niasdigital.com
 +S:    Maintained
 +
  SOFTWARE RAID (Multiple Disks) SUPPORT
  P:    Ingo Molnar
  M:    mingo@redhat.com
@@@ -42,7 -42,7 +42,7 @@@ struct pxa3xx_mfp_pin 
  static struct pxa3xx_mfp_pin mfp_table[MFP_PIN_MAX];
  
  /* mapping of MFP_LPM_* definitions to MFPR_LPM_* register bits */
- const static unsigned long mfpr_lpm[] = {
+ static const unsigned long mfpr_lpm[] = {
        MFPR_LPM_INPUT,
        MFPR_LPM_DRIVE_LOW,
        MFPR_LPM_DRIVE_HIGH,
@@@ -52,7 -52,7 +52,7 @@@
  };
  
  /* mapping of MFP_PULL_* definitions to MFPR_PULL_* register bits */
- const static unsigned long mfpr_pull[] = {
+ static const unsigned long mfpr_pull[] = {
        MFPR_PULL_NONE,
        MFPR_PULL_LOW,
        MFPR_PULL_HIGH,
@@@ -60,7 -60,7 +60,7 @@@
  };
  
  /* mapping of MFP_LPM_EDGE_* definitions to MFPR_EDGE_* register bits */
- const static unsigned long mfpr_edge[] = {
+ static const unsigned long mfpr_edge[] = {
        MFPR_EDGE_NONE,
        MFPR_EDGE_RISE,
        MFPR_EDGE_FALL,
@@@ -234,22 -234,22 +234,22 @@@ static int pxa3xx_mfp_resume(struct sys
  
        return 0;
  }
 +#else
 +#define pxa3xx_mfp_suspend    NULL
 +#define pxa3xx_mfp_resume     NULL
 +#endif
  
 -static struct sysdev_class mfp_sysclass = {
 +struct sysdev_class pxa3xx_mfp_sysclass = {
        .name           = "mfp",
        .suspend        = pxa3xx_mfp_suspend,
        .resume         = pxa3xx_mfp_resume,
  };
  
 -static struct sys_device mfp_device = {
 -      .id             = 0,
 -      .cls            = &mfp_sysclass,
 -};
 -
  static int __init mfp_init_devicefs(void)
  {
 -      sysdev_class_register(&mfp_sysclass);
 -      return sysdev_register(&mfp_device);
 +      if (cpu_is_pxa3xx())
 +              return sysdev_class_register(&pxa3xx_mfp_sysclass);
 +
 +      return 0;
  }
 -device_initcall(mfp_init_devicefs);
 -#endif
 +postcore_initcall(mfp_init_devicefs);
diff --combined include/linux/jiffies.h
@@@ -36,7 -36,7 +36,7 @@@
  #elif HZ >= 6144 && HZ < 12288
  # define SHIFT_HZ     13
  #else
- # error You lose.
+ # error Invalid value of HZ.
  #endif
  
  /* LATCH is used in the interval timer and ftape setup. */
@@@ -135,22 -135,6 +135,22 @@@ static inline u64 get_jiffies_64(void
  #define time_before_eq64(a,b) time_after_eq64(b,a)
  
  /*
 + * These four macros compare jiffies and 'a' for convenience.
 + */
 +
 +/* time_is_before_jiffies(a) return true if a is before jiffies */
 +#define time_is_before_jiffies(a) time_after(jiffies, a)
 +
 +/* time_is_after_jiffies(a) return true if a is after jiffies */
 +#define time_is_after_jiffies(a) time_before(jiffies, a)
 +
 +/* time_is_before_eq_jiffies(a) return true if a is before or equal to jiffies*/
 +#define time_is_before_eq_jiffies(a) time_after_eq(jiffies, a)
 +
 +/* time_is_after_eq_jiffies(a) return true if a is after or equal to jiffies*/
 +#define time_is_after_eq_jiffies(a) time_before_eq(jiffies, a)
 +
 +/*
   * Have the 32 bit jiffies value wrap 5 minutes after boot
   * so jiffies wrap bugs show up earlier.
   */
diff --combined kernel/stop_machine.c
@@@ -11,6 -11,7 +11,6 @@@
  #include <linux/interrupt.h>
  
  #include <asm/atomic.h>
 -#include <asm/semaphore.h>
  #include <asm/uaccess.h>
  
  /* Since we effect priority and affinity (both of which are visible
@@@ -34,7 -35,7 +34,7 @@@ static int stopmachine(void *cpu
        int irqs_disabled = 0;
        int prepared = 0;
  
 -      set_cpus_allowed(current, cpumask_of_cpu((int)(long)cpu));
 +      set_cpus_allowed_ptr(current, &cpumask_of_cpu((int)(long)cpu));
  
        /* Ack: we are alive */
        smp_mb(); /* Theoretically the ack = 0 might not be on this CPU yet. */
@@@ -134,8 -135,7 +134,7 @@@ static void restart_machine(void
        preempt_enable_no_resched();
  }
  
- struct stop_machine_data
- {
+ struct stop_machine_data {
        int (*fn)(void *);
        void *data;
        struct completion done;
diff --combined mm/pdflush.c
@@@ -17,8 -17,8 +17,8 @@@
  #include <linux/gfp.h>
  #include <linux/init.h>
  #include <linux/module.h>
- #include <linux/fs.h>         // Needed by writeback.h
- #include <linux/writeback.h>  // Prototypes pdflush_operation()
+ #include <linux/fs.h>         /* Needed by writeback.h          */
+ #include <linux/writeback.h>  /* Prototypes pdflush_operation() */
  #include <linux/kthread.h>
  #include <linux/cpuset.h>
  #include <linux/freezer.h>
@@@ -187,8 -187,8 +187,8 @@@ static int pdflush(void *dummy
         * This is needed as pdflush's are dynamically created and destroyed.
         * The boottime pdflush's are easily placed w/o these 2 lines.
         */
 -      cpus_allowed = cpuset_cpus_allowed(current);
 -      set_cpus_allowed(current, cpus_allowed);
 +      cpuset_cpus_allowed(current, &cpus_allowed);
 +      set_cpus_allowed_ptr(current, &cpus_allowed);
  
        return __pdflush(&my_work);
  }
@@@ -12,7 -12,8 +12,7 @@@
  #include <linux/init.h>
  #include <linux/device.h>
  #include <linux/string.h>
 -
 -#include "linux/firmware.h"
 +#include <linux/firmware.h>
  
  static struct device ghost_device = {
        .bus_id    = "ghost0",
@@@ -30,49 -31,41 +30,50 @@@ static void sample_firmware_load(char *
  static void sample_probe_default(void)
  {
        /* uses the default method to get the firmware */
 -        const struct firmware *fw_entry;
 -      printk(KERN_INFO "firmware_sample_driver: a ghost device got inserted :)\n");
 +      const struct firmware *fw_entry;
 +      int retval;
 +
 +      printk(KERN_INFO "firmware_sample_driver: "
 +              "a ghost device got inserted :)\n");
  
 -        if (request_firmware(&fw_entry, "sample_driver_fw", &ghost_device)!=0) {
 +      retval = request_firmware(&fw_entry, "sample_driver_fw", &ghost_device);
 +      if (retval) {
                printk(KERN_ERR
                       "firmware_sample_driver: Firmware not available\n");
                return;
        }
 -      
 +
        sample_firmware_load(fw_entry->data, fw_entry->size);
  
        release_firmware(fw_entry);
  
        /* finish setting up the device */
  }
 +
  static void sample_probe_specific(void)
  {
 +      int retval;
        /* Uses some specific hotplug support to get the firmware from
         * userspace  directly into the hardware, or via some sysfs file */
  
        /* NOTE: This currently doesn't work */
  
 -      printk(KERN_INFO "firmware_sample_driver: a ghost device got inserted :)\n");
 +      printk(KERN_INFO "firmware_sample_driver: "
 +              "a ghost device got inserted :)\n");
  
 -        if (request_firmware(NULL, "sample_driver_fw", &ghost_device)!=0) {
 +      retval = request_firmware(NULL, "sample_driver_fw", &ghost_device);
 +      if (retval) {
                printk(KERN_ERR
                       "firmware_sample_driver: Firmware load failed\n");
                return;
        }
 -      
 +
        /* request_firmware blocks until userspace finished, so at
         * this point the firmware should be already in the device */
  
        /* finish setting up the device */
  }
++
  static void sample_probe_async_cont(const struct firmware *fw, void *context)
  {
        if (!fw) {
               (char *)context);
        sample_firmware_load(fw->data, fw->size);
  }
 +
  static void sample_probe_async(void)
  {
        /* Let's say that I can't sleep */
        int error;
 -      error = request_firmware_nowait (THIS_MODULE, FW_ACTION_NOHOTPLUG,
 -                                       "sample_driver_fw", &ghost_device,
 -                                       "my device pointer",
 -                                       sample_probe_async_cont);
 -      if (error) {
 +      error = request_firmware_nowait(THIS_MODULE, FW_ACTION_NOHOTPLUG,
 +                                      "sample_driver_fw", &ghost_device,
 +                                      "my device pointer",
 +                                      sample_probe_async_cont);
 +      if (error)
                printk(KERN_ERR "firmware_sample_driver:"
                       " request_firmware_nowait failed\n");
 -      }
  }
  
  static int sample_init(void)
@@@ -114,7 -107,7 +115,7 @@@ static void __exit sample_exit(void
  {
  }
  
 -module_init (sample_init);
 -module_exit (sample_exit);
 +module_init(sample_init);
 +module_exit(sample_exit);
  
  MODULE_LICENSE("GPL");