1. Oct 03, 2012
    • Ben Skeggs's avatar
      drm/nouveau/bios: pull in basic vbios subdev, more to come later · 70c0f263
      Ben Skeggs authored
      
      
      v2: Ben Skeggs <bskeggs@redhat.com>
      - use unaligned macros to access vbios image
      - endianness fixes
      
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      70c0f263
    • Ben Skeggs's avatar
      drm/nouveau: have non-core mmio accesses go through device object · 586c55f6
      Ben Skeggs authored
      
      
      Adds an extra layer of indirection to each register access, but it's not
      too bad, and will also go away as pieces are ported.
      
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      586c55f6
    • Ben Skeggs's avatar
      drm/nouveau: implement module init functions in nouveau_drm.c · 94580299
      Ben Skeggs authored
      
      
      These currently just call the existing ones in nouveau_drv.c, but will be
      extended in upcoming commits.  This needed to be separated from the current
      code as there will be some header clashes until things are ported.
      
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      94580299
    • Ben Skeggs's avatar
      drm/nouveau/core: pull in most of the new core infrastructure · 9274f4a9
      Ben Skeggs authored
      
      
      This commit provides most of the infrastructure to support a major overhaul
      of Nouveau's internals coming in the following commits.  This work aims to
      take all the things we've learned over the last several years, and turn that
      into a cleaner architecture that's more maintainable going forward.
      
      RAMHT and MM bits of the new core have been left out for the moment, and
      will be pulled in as I go through the process of porting the code to
      become either subdev or engine modules.
      
      There are several main goals I wanted to achieve through this work:
      
      -- Reduce complexity
      
      The goal here was to make each component of the driver as independent as
      possible, which will ease maintainability and readability, and provide a
      good base for resetting locked up GPU units in the future.
      
      -- Better tracking of GPU units that are required at any given time
      
      This is for future PM work, we'll be able to tell exactly what parts of the
      GPU we need powered at any given point (etc).
      
      -- Expose all available NVIDIA GPUs to the client
      
      In order to support things such as multi-GPU channels, we want to be able
      to expose all the NVIDIA GPUs to the client over a single file descriptor
      so it can send a single push buffer to multiple GPUs.
      
      -- Untangle the core hardware support code from the DRM implementation
      
      This happened initially as an unexpected side-effect of developing the
      initial core infrastructure in userspace, but it turned into a goal of
      the whole project.  Initial benefits will be the availablility of a
      number of userspace tools and tests using the same code as the driver
      itself, but will also be important as I look into some virtualisation
      ideas.
      
      v2: Ben Skeggs <bskeggs@redhat.com>
      - fix duplicate assignments noticed by clang
      - implement some forgotten yelling in error path
      - ensure 64-bit engine mask is used everywhere
      
      v3: Marcin Slusarz <marcin.slusarz@gmail.com>
      - sparse fixes
      - inline nv_printk into nv_assert to prevent recursive inlining issues
      
      v4: Ben Skeggs <bskeggs@redhat.com>
      - fixed minor memory leak on gpuobj destruction
      
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      9274f4a9
    • Ben Skeggs's avatar
    • Ben Skeggs's avatar
      drm/nouveau: restructure source tree, split core from drm implementation · 02a841d4
      Ben Skeggs authored
      
      
      Future work will be headed in the way of separating the policy supplied by
      the nouveau drm module from the mechanisms provided by the driver core.
      
      There will be a couple of major classes (subdev, engine) of driver modules
      that have clearly defined tasks, and the further directory structure change
      is to reflect this.
      
      No code changes here whatsoever, aside from fixing up a couple of include
      file pathnames.
      
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      02a841d4
    • Ben Skeggs's avatar
      drm/nouveau/gem: use bo.offset rather than mm_node.start · 3a92d37e
      Ben Skeggs authored
      
      
      Won't necessarily be a drm_mm_node in the future, and I can't think of any
      good reason to not use the offset from the bo struct.  There may have been
      some reason once apon a time, but, separate commit just in case.
      
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      3a92d37e
    • Ben Skeggs's avatar
      drm/nvc0/fence: restore pre-suspend fence buffer context on resume · d6ba6d21
      Ben Skeggs authored
      
      
      Fixes some unfortunate races on resume.  The G84 version of the code doesn't
      need this as "gpuobj"s are automagically suspended/resumed by the core code
      whereas pinned buffer objects are not.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      d6ba6d21
  2. Oct 01, 2012
  3. Sep 30, 2012
    • Miklos Szeredi's avatar
      vfs: dcache: fix deadlock in tree traversal · 8110e16d
      Miklos Szeredi authored
      
      
      IBM reported a deadlock in select_parent().  This was found to be caused
      by taking rename_lock when already locked when restarting the tree
      traversal.
      
      There are two cases when the traversal needs to be restarted:
      
       1) concurrent d_move(); this can only happen when not already locked,
          since taking rename_lock protects against concurrent d_move().
      
       2) racing with final d_put() on child just at the moment of ascending
          to parent; rename_lock doesn't protect against this rare race, so it
          can happen when already locked.
      
      Because of case 2, we need to be able to handle restarting the traversal
      when rename_lock is already held.  This patch fixes all three callers of
      try_to_ascend().
      
      IBM reported that the deadlock is gone with this patch.
      
      [ I rewrote the patch to be smaller and just do the "goto again" if the
        lock was already held, but credit goes to Miklos for the real work.
         - Linus ]
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8110e16d
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v3.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 6a3e3dbe
      Linus Torvalds authored
      Pull IOMMU fixes from Joerg Roedel:
       "Two small patches:
      
      	* One patch to fix the function declarations for
      	  !CONFIG_IOMMU_API. This is causing build errors
      	  in linux-next and should be fixed for v3.6.
      
      	* Another patch to fix an IOMMU group related NULL pointer
      	  dereference."
      
      * tag 'iommu-fixes-v3.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/amd: Fix wrong assumption in iommu-group specific code
        iommu: static inline iommu group stub functions
      6a3e3dbe
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/users/willy/linux-nvme · 21e98932
      Linus Torvalds authored
      Pull NVMe driver fixes from Matthew Wilcox:
       "Now that actual hardware has been released (don't have any yet
        myself), people are starting to want some of these fixes merged."
      
      Willy doesn't have hardware? Guys...
      
      * git://git.infradead.org/users/willy/linux-nvme:
        NVMe: Cancel outstanding IOs on queue deletion
        NVMe: Free admin queue memory on initialisation failure
        NVMe: Use ida for nvme device instance
        NVMe: Fix whitespace damage in nvme_init
        NVMe: handle allocation failure in nvme_map_user_pages()
        NVMe: Fix uninitialized iod compiler warning
        NVMe: Do not set IO queue depth beyond device max
        NVMe: Set block queue max sectors
        NVMe: use namespace id for nvme_get_features
        NVMe: replace nvme_ns with nvme_dev for user admin
        NVMe: Fix nvme module init when nvme_major is set
        NVMe: Set request queue logical block size
      21e98932
  4. Sep 29, 2012
    • Linus Torvalds's avatar
      mtdchar: fix offset overflow detection · 9c603e53
      Linus Torvalds authored
      
      
      Sasha Levin has been running trinity in a KVM tools guest, and was able
      to trigger the BUG_ON() at arch/x86/mm/pat.c:279 (verifying the range of
      the memory type).  The call trace showed that it was mtdchar_mmap() that
      created an invalid remap_pfn_range().
      
      The problem is that mtdchar_mmap() does various really odd and subtle
      things with the vma page offset etc, and uses the wrong types (and the
      wrong overflow) detection for it.
      
      For example, the page offset may well be 32-bit on a 32-bit
      architecture, but after shifting it up by PAGE_SHIFT, we need to use a
      potentially 64-bit resource_size_t to correctly hold the full value.
      
      Also, we need to check that the vma length plus offset doesn't overflow
      before we check that it is smaller than the length of the mtdmap region.
      
      This fixes things up and tries to make the code a bit easier to read.
      
      Reported-and-tested-by: default avatarSasha Levin <levinsasha928@gmail.com>
      Acked-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Acked-by: default avatarArtem Bityutskiy <dedekind1@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: linux-mtd@lists.infradead.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9c603e53
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 6672d90f
      Linus Torvalds authored
      Pull networking fixes from David S Miller:
      
       1) Netfilter xt_limit module can use uninitialized rules, from Jan
          Engelhardt.
      
       2) Wei Yongjun has found several more spots where error pointers were
          treated as NULL/non-NULL and vice versa.
      
       3) bnx2x was converted to pci_io{,un}map() but one remaining plain
          iounmap() got missed.  From Neil Horman.
      
       4) Due to a fence-post type error in initialization of inetpeer entries
          (which is where we store the ICMP rate limiting information), we can
          erroneously drop ICMPs if the inetpeer was created right around when
          jiffies wraps.
      
          Fix from Nicolas Dichtel.
      
       5) smsc75xx resume fix from Steve Glendinnig.
      
       6) LAN87xx smsc chips need an explicit hardware init, from Marek Vasut.
      
       7) qlcnic uses msleep() with locks held, fix from Narendra K.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        netdev: octeon: fix return value check in octeon_mgmt_init_phy()
        inetpeer: fix token initialization
        qlcnic: Fix scheduling while atomic bug
        bnx2: Clean up remaining iounmap
        net: phy: smsc: Implement PHY config_init for LAN87xx
        smsc75xx: fix resume after device reset
        netdev: pasemi: fix return value check in pasemi_mac_phy_init()
        team: fix return value check
        l2tp: fix return value check
        netfilter: xt_limit: have r->cost != 0 case work
      6672d90f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 7596824e
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "A couple of fixes; one for automount/lazy umount race, another a
        classic "we don't protect the refcount transition to zero with the
        lock that protects looking for object in hash" kind of crap in lockd."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        close the race in nlmsvc_free_block()
        do_add_mount()/umount -l races
      7596824e
    • Linus Torvalds's avatar
      Merge branch 'for-linus-3.6-rc-final' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 97956605
      Linus Torvalds authored
      Pull UML fixes from Richard Weinberger.
      
      * 'for-linus-3.6-rc-final' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Preinclude include/linux/kern_levels.h
        um: Fix IPC on um
        um: kill thread->forking
        um: let signal_delivered() do SIGTRAP on singlestepping into handler
        um: don't leak floating point state and segment registers on execve()
        um: take cleaning singlestep to start_thread()
      97956605
    • Linus Torvalds's avatar
      Merge tag 'dm-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · c3a086e6
      Linus Torvalds authored
      Pull dm fixes from Alasdair G Kergon:
       "A few fixes for problems discovered during the 3.6 cycle.
      
        Of particular note, are fixes to the thin target's discard support,
        which I hope is finally working correctly; and fixes for multipath
        ioctls and device limits when there are no paths."
      
      * tag 'dm-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
        dm verity: fix overflow check
        dm thin: fix discard support for data devices
        dm thin: tidy discard support
        dm: retain table limits when swapping to new table with no devices
        dm table: clear add_random unless all devices have it set
        dm: handle requests beyond end of device instead of using BUG_ON
        dm mpath: only retry ioctl when no paths if queue_if_no_path set
        dm thin: do not set discard_zeroes_data
      c3a086e6
  5. Sep 28, 2012