Merge branch 'staging-next' into Linux 3.1
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 25 Oct 2011 07:18:11 +0000 (09:18 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 25 Oct 2011 07:18:11 +0000 (09:18 +0200)
This was done to resolve a conflict in the
drivers/staging/comedi/drivers/ni_labpc.c file that resolved a build
bugfix in Linus's tree with a "better" bugfix that was in the
staging-next tree that resolved the issue in a more complete manner.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
1  2 
MAINTAINERS
drivers/staging/zcache/zcache-main.c

diff --combined MAINTAINERS
@@@ -1278,6 -1278,7 +1278,6 @@@ F:      drivers/input/misc/ati_remote2.
  ATLX ETHERNET DRIVERS
  M:    Jay Cliburn <jcliburn@gmail.com>
  M:    Chris Snook <chris.snook@gmail.com>
 -M:    Jie Yang <jie.yang@atheros.com>
  L:    netdev@vger.kernel.org
  W:    http://sourceforge.net/projects/atl1
  W:    http://atl1.sourceforge.net
@@@ -1573,6 -1574,7 +1573,6 @@@ F:      drivers/scsi/bfa
  
  BROCADE BNA 10 GIGABIT ETHERNET DRIVER
  M:    Rasesh Mody <rmody@brocade.com>
 -M:    Debashis Dutt <ddutt@brocade.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/bna/
@@@ -1756,6 -1758,7 +1756,6 @@@ F:      Documentation/zh_CN
  
  CISCO VIC ETHERNET NIC DRIVER
  M:    Christian Benvenuti <benve@cisco.com>
 -M:    Vasanthy Kolluri <vkolluri@cisco.com>
  M:    Roopa Prabhu <roprabhu@cisco.com>
  M:    David Wang <dwang2@cisco.com>
  S:    Supported
@@@ -2460,7 -2463,7 +2460,7 @@@ S:      Supporte
  F:    drivers/infiniband/hw/ehca/
  
  EHEA (IBM pSeries eHEA 10Gb ethernet adapter) DRIVER
 -M:    Breno Leitao <leitao@linux.vnet.ibm.com>
 +M:    Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ehea/
@@@ -2646,11 -2649,11 +2646,11 @@@ F:   drivers/net/wan/dlci.
  F:    drivers/net/wan/sdla.c
  
  FRAMEBUFFER LAYER
 -M:    Paul Mundt <lethal@linux-sh.org>
 +M:    Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
  L:    linux-fbdev@vger.kernel.org
  W:    http://linux-fbdev.sourceforge.net/
  Q:    http://patchwork.kernel.org/project/linux-fbdev/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git
 +T:    git git://github.com/schandinat/linux-2.6.git fbdev-next
  S:    Maintained
  F:    Documentation/fb/
  F:    Documentation/devicetree/bindings/fb/
@@@ -3259,17 -3262,6 +3259,17 @@@ F:    Documentation/input/multi-touch-prot
  F:    drivers/input/input-mt.c
  K:    \b(ABS|SYN)_MT_
  
 +INTEL C600 SERIES SAS CONTROLLER DRIVER
 +M:    Intel SCU Linux support <intel-linux-scu@intel.com>
 +M:    Dan Williams <dan.j.williams@intel.com>
 +M:    Dave Jiang <dave.jiang@intel.com>
 +M:    Ed Nadolski <edmund.nadolski@intel.com>
 +L:    linux-scsi@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/djbw/isci.git
 +S:    Maintained
 +F:    drivers/scsi/isci/
 +F:    firmware/isci/
 +
  INTEL IDLE DRIVER
  M:    Len Brown <lenb@kernel.org>
  L:    linux-pm@lists.linux-foundation.org
@@@ -3313,7 -3305,7 +3313,7 @@@ M:      David Woodhouse <dwmw2@infradead.org
  L:    iommu@lists.linux-foundation.org
  T:    git git://git.infradead.org/iommu-2.6.git
  S:    Supported
 -F:    drivers/pci/intel-iommu.c
 +F:    drivers/iommu/intel-iommu.c
  F:    include/linux/intel-iommu.h
  
  INTEL IOP-ADMA DMA DRIVER
@@@ -4412,8 -4404,7 +4412,8 @@@ L:      netfilter@vger.kernel.or
  L:    coreteam@netfilter.org
  W:    http://www.netfilter.org/
  W:    http://www.iptables.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next-2.6.git
  S:    Supported
  F:    include/linux/netfilter*
  F:    include/linux/netfilter/
@@@ -4459,8 -4450,8 +4459,8 @@@ M:      "David S. Miller" <davem@davemloft.n
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net
  W:    http://patchwork.ozlabs.org/project/netdev/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
  S:    Maintained
  F:    net/
  F:    include/net/
@@@ -4783,7 -4774,7 +4783,7 @@@ F:      drivers/net/wireless/orinoco
  
  OSD LIBRARY and FILESYSTEM
  M:    Boaz Harrosh <bharrosh@panasas.com>
 -M:    Benny Halevy <bhalevy@panasas.com>
 +M:    Benny Halevy <bhalevy@tonian.com>
  L:    osd-dev@open-osd.org
  W:    http://open-osd.org
  T:    git git://git.open-osd.org/open-osd.git
@@@ -6134,7 -6125,7 +6134,7 @@@ S:      Maintaine
  
  STAGING SUBSYSTEM
  M:    Greg Kroah-Hartman <gregkh@suse.de>
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6.git
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
  L:    devel@driverdev.osuosl.org
  S:    Maintained
  F:    drivers/staging/
@@@ -6181,6 -6172,11 +6181,11 @@@ M:    David Rowe <david@rowetel.com
  S:    Odd Fixes
  F:    drivers/staging/echo/
  
+ STAGING - ET131X NETWORK DRIVER
+ M:    Mark Einon <mark.einon@gmail.com>
+ S:    Odd Fixes
+ F:    drivers/staging/et131x/
  STAGING - FLARION FT1000 DRIVERS
  M:    Marek Belisko <marek.belisko@gmail.com>
  S:    Odd Fixes
@@@ -6209,6 -6205,13 +6214,13 @@@ W:    http://www.lirc.org
  S:    Odd Fixes
  F:    drivers/staging/lirc/
  
+ STAGING - NVIDIA COMPLIANT EMBEDDED CONTROLLER INTERFACE (nvec)
+ M:    Julian Andres Klode <jak@jak-linux.org>
+ M:    Marc Dietrich <marvin24@gmx.de>
+ L:    ac100@lists.launchpad.net (moderated for non-subscribers)
+ S:    Maintained
+ F:    drivers/staging/nvec/
  STAGING - OLPC SECONDARY DISPLAY CONTROLLER (DCON)
  M:    Andres Salomon <dilinger@queued.net>
  M:    Chris Ball <cjb@laptop.org>
@@@ -6366,14 -6369,15 +6378,14 @@@ F:   net/ipv4/tcp_lp.
  
  TEGRA SUPPORT
  M:    Colin Cross <ccross@android.com>
 -M:    Erik Gilling <konkers@android.com>
  M:    Olof Johansson <olof@lixom.net>
 +M:    Stephen Warren <swarren@nvidia.com>
  L:    linux-tegra@vger.kernel.org
 -T:    git git://android.git.kernel.org/kernel/tegra.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git
  S:    Supported
  F:    arch/arm/mach-tegra
  
  TEHUTI ETHERNET DRIVER
 -M:    Alexander Indenbaum <baum@tehutinetworks.net>
  M:    Andy Gospodarek <andy@greyhouse.net>
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -7208,9 -7212,6 +7220,9 @@@ W:      http://opensource.wolfsonmicro.com/c
  S:    Supported
  F:    Documentation/hwmon/wm83??
  F:    drivers/leds/leds-wm83*.c
 +F:    drivers/input/misc/wm831x-on.c
 +F:    drivers/input/touchscreen/wm831x-ts.c
 +F:    drivers/input/touchscreen/wm97*.c
  F:    drivers/mfd/wm8*.c
  F:    drivers/power/wm83*.c
  F:    drivers/rtc/rtc-wm83*.c
@@@ -7220,7 -7221,6 +7232,7 @@@ F:      drivers/watchdog/wm83*_wdt.
  F:    include/linux/mfd/wm831x/
  F:    include/linux/mfd/wm8350/
  F:    include/linux/mfd/wm8400*
 +F:    include/linux/wm97xx.h
  F:    include/sound/wm????.h
  F:    sound/soc/codecs/wm*
  
@@@ -651,7 -651,7 +651,7 @@@ static unsigned int zv_max_zsize = (PAG
  /*
   * byte count defining poor *mean* compression; pages with greater zsize
   * will be rejected until sufficient better-compressed pages are accepted
-  * driving the man below this threshold
+  * driving the mean below this threshold
   */
  static unsigned int zv_max_mean_zsize = (PAGE_SIZE / 8) * 5;
  
@@@ -962,15 -962,6 +962,6 @@@ out
  static unsigned long zcache_failed_get_free_pages;
  static unsigned long zcache_failed_alloc;
  static unsigned long zcache_put_to_flush;
- static unsigned long zcache_aborted_preload;
- static unsigned long zcache_aborted_shrink;
- /*
-  * Ensure that memory allocation requests in zcache don't result
-  * in direct reclaim requests via the shrinker, which would cause
-  * an infinite loop.  Maybe a GFP flag would be better?
-  */
- static DEFINE_SPINLOCK(zcache_direct_reclaim_lock);
  
  /*
   * for now, used named slabs so can easily track usage; later can
@@@ -1009,10 -1000,6 +1000,6 @@@ static int zcache_do_preload(struct tme
                goto out;
        if (unlikely(zcache_obj_cache == NULL))
                goto out;
-       if (!spin_trylock(&zcache_direct_reclaim_lock)) {
-               zcache_aborted_preload++;
-               goto out;
-       }
        preempt_disable();
        kp = &__get_cpu_var(zcache_preloads);
        while (kp->nr < ARRAY_SIZE(kp->objnodes)) {
                                ZCACHE_GFP_MASK);
                if (unlikely(objnode == NULL)) {
                        zcache_failed_alloc++;
-                       goto unlock_out;
+                       goto out;
                }
                preempt_disable();
                kp = &__get_cpu_var(zcache_preloads);
        obj = kmem_cache_alloc(zcache_obj_cache, ZCACHE_GFP_MASK);
        if (unlikely(obj == NULL)) {
                zcache_failed_alloc++;
-               goto unlock_out;
+               goto out;
        }
        page = (void *)__get_free_page(ZCACHE_GFP_MASK);
        if (unlikely(page == NULL)) {
                zcache_failed_get_free_pages++;
                kmem_cache_free(zcache_obj_cache, obj);
-               goto unlock_out;
+               goto out;
        }
        preempt_disable();
        kp = &__get_cpu_var(zcache_preloads);
        else
                free_page((unsigned long)page);
        ret = 0;
- unlock_out:
-       spin_unlock(&zcache_direct_reclaim_lock);
  out:
        return ret;
  }
@@@ -1242,7 -1227,7 +1227,7 @@@ static int zcache_pampd_get_data_and_fr
        int ret = 0;
  
        BUG_ON(!is_ephemeral(pool));
 -      zbud_decompress(virt_to_page(data), pampd);
 +      zbud_decompress((struct page *)(data), pampd);
        zbud_free_and_delist((struct zbud_hdr *)pampd);
        atomic_dec(&zcache_curr_eph_pampd_count);
        return ret;
@@@ -1357,8 -1342,14 +1342,14 @@@ static int zcache_cpu_notifier(struct n
                        kp->objnodes[kp->nr - 1] = NULL;
                        kp->nr--;
                }
-               kmem_cache_free(zcache_obj_cache, kp->obj);
-               free_page((unsigned long)kp->page);
+               if (kp->obj) {
+                       kmem_cache_free(zcache_obj_cache, kp->obj);
+                       kp->obj = NULL;
+               }
+               if (kp->page) {
+                       free_page((unsigned long)kp->page);
+                       kp->page = NULL;
+               }
                break;
        default:
                break;
@@@ -1423,8 -1414,6 +1414,6 @@@ ZCACHE_SYSFS_RO(evicted_buddied_pages)
  ZCACHE_SYSFS_RO(failed_get_free_pages);
  ZCACHE_SYSFS_RO(failed_alloc);
  ZCACHE_SYSFS_RO(put_to_flush);
- ZCACHE_SYSFS_RO(aborted_preload);
- ZCACHE_SYSFS_RO(aborted_shrink);
  ZCACHE_SYSFS_RO(compress_poor);
  ZCACHE_SYSFS_RO(mean_compress_poor);
  ZCACHE_SYSFS_RO_ATOMIC(zbud_curr_raw_pages);
@@@ -1466,8 -1455,6 +1455,6 @@@ static struct attribute *zcache_attrs[
        &zcache_failed_get_free_pages_attr.attr,
        &zcache_failed_alloc_attr.attr,
        &zcache_put_to_flush_attr.attr,
-       &zcache_aborted_preload_attr.attr,
-       &zcache_aborted_shrink_attr.attr,
        &zcache_zbud_unbuddied_list_counts_attr.attr,
        &zcache_zbud_cumul_chunk_counts_attr.attr,
        &zcache_zv_curr_dist_counts_attr.attr,
@@@ -1507,11 -1494,7 +1494,7 @@@ static int shrink_zcache_memory(struct 
                if (!(gfp_mask & __GFP_FS))
                        /* does this case really need to be skipped? */
                        goto out;
-               if (spin_trylock(&zcache_direct_reclaim_lock)) {
-                       zbud_evict_pages(nr);
-                       spin_unlock(&zcache_direct_reclaim_lock);
-               } else
-                       zcache_aborted_shrink++;
+               zbud_evict_pages(nr);
        }
        ret = (int)atomic_read(&zcache_zbud_curr_raw_pages);
  out:
@@@ -1668,7 -1651,7 +1651,7 @@@ static int zcache_new_pool(uint16_t cli
        if (cli == NULL)
                goto out;
        atomic_inc(&cli->refcount);
-       pool = kmalloc(sizeof(struct tmem_pool), GFP_KERNEL);
+       pool = kmalloc(sizeof(struct tmem_pool), GFP_ATOMIC);
        if (pool == NULL) {
                pr_info("zcache: pool creation failed: out of memory\n");
                goto out;
@@@ -1798,8 -1781,10 +1781,10 @@@ static int zcache_frontswap_poolid = -1
  /*
   * Swizzling increases objects per swaptype, increasing tmem concurrency
   * for heavy swaploads.  Later, larger nr_cpus -> larger SWIZ_BITS
+  * Setting SWIZ_BITS to 27 basically reconstructs the swap entry from
+  * frontswap_get_page()
   */
- #define SWIZ_BITS             4
+ #define SWIZ_BITS             27
  #define SWIZ_MASK             ((1 << SWIZ_BITS) - 1)
  #define _oswiz(_type, _ind)   ((_type << SWIZ_BITS) | (_ind & SWIZ_MASK))
  #define iswiz(_ind)           (_ind >> SWIZ_BITS)
@@@ -1993,7 -1978,7 +1978,7 @@@ static int __init zcache_init(void
                pr_info("zcache: frontswap enabled using kernel "
                        "transcendent memory and xvmalloc\n");
                if (old_ops.init != NULL)
-                       pr_warning("ktmem: frontswap_ops overridden");
+                       pr_warning("zcache: frontswap_ops overridden");
        }
  #endif
  out: