1. 30 5月, 2012 21 次提交
  2. 27 5月, 2012 2 次提交
  3. 26 5月, 2012 2 次提交
  4. 25 5月, 2012 8 次提交
    • S
      dma-buf: minor documentation fixes. · 12c4727e
      Sumit Semwal 提交于
      Some minor inline documentation fixes for gaps resulting from new patches.
      Signed-off-by: NSumit Semwal <sumit.semwal@ti.com>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      12c4727e
    • D
      dma-buf: add vmap interface · 98f86c9e
      Dave Airlie 提交于
      The main requirement I have for this interface is for scanning out
      using the USB gpu devices. Since these devices have to read the
      framebuffer on updates and linearly compress it, using kmaps
      is a major overhead for every update.
      
      v2: fix warn issues pointed out by Sylwester Nawrocki.
      
      v3: fix compile !CONFIG_DMA_SHARED_BUFFER and add _GPL for now
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      Reviewed-by: NRob Clark <rob.clark@linaro.org>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      98f86c9e
    • D
      dma-buf: mmap support · 4c78513e
      Daniel Vetter 提交于
      Compared to Rob Clark's RFC I've ditched the prepare/finish hooks
      and corresponding ioctls on the dma_buf file. The major reason for
      that is that many people seem to be under the impression that this is
      also for synchronization with outstanding asynchronous processsing.
      I'm pretty massively opposed to this because:
      
      - It boils down reinventing a new rather general-purpose userspace
        synchronization interface. If we look at things like futexes, this
        is hard to get right.
      - Furthermore a lot of kernel code has to interact with this
        synchronization primitive. This smells a look like the dri1 hw_lock,
        a horror show I prefer not to reinvent.
      - Even more fun is that multiple different subsystems would interact
        here, so we have plenty of opportunities to create funny deadlock
        scenarios.
      
      I think synchronization is a wholesale different problem from data
      sharing and should be tackled as an orthogonal problem.
      
      Now we could demand that prepare/finish may only ensure cache
      coherency (as Rob intended), but that runs up into the next problem:
      We not only need mmap support to facilitate sw-only processing nodes
      in a pipeline (without jumping through hoops by importing the dma_buf
      into some sw-access only importer), which allows for a nicer
      ION->dma-buf upgrade path for existing Android userspace. We also need
      mmap support for existing importing subsystems to support existing
      userspace libraries. And a loot of these subsystems are expected to
      export coherent userspace mappings.
      
      So prepare/finish can only ever be optional and the exporter /needs/
      to support coherent mappings. Given that mmap access is always
      somewhat fallback-y in nature I've decided to drop this optimization,
      instead of just making it optional. If we demonstrate a clear need for
      this, supported by benchmark results, we can always add it in again
      later as an optional extension.
      
      Other differences compared to Rob's RFC is the above mentioned support
      for mapping a dma-buf through facilities provided by the importer.
      Which results in mmap support no longer being optional.
      
      Note that this dma-buf mmap patch does _not_ support every possible
      insanity an existing subsystem could pull of with mmap: Because it
      does not allow to intercept pagefaults and shoot down ptes importing
      subsystems can't add some magic of their own at these points (e.g. to
      automatically synchronize with outstanding rendering or set up some
      special resources). I've done a cursory read through a few mmap
      implementions of various subsytems and I'm hopeful that we can avoid
      this (and the complexity it'd bring with it).
      
      Additonally I've extended the documentation a bit to explain the hows
      and whys of this mmap extension.
      
      In case we ever want to add support for explicitly cache maneged
      userspace mmap with a prepare/finish ioctl pair, we could specify that
      userspace needs to mmap a different part of the dma_buf, e.g. the
      range starting at dma_buf->size up to dma_buf->size*2. This works
      because the size of a dma_buf is invariant over it's lifetime. The
      exporter would obviously need to fall back to coherent mappings for
      both ranges if a legacy clients maps the coherent range and the
      architecture cannot suppor conflicting caching policies. Also, this
      would obviously be optional and userspace needs to be able to fall
      back to coherent mappings.
      
      v2:
      - Spelling fixes from Rob Clark.
      - Compile fix for !DMA_BUF from Rob Clark.
      - Extend commit message to explain how explicitly cache managed mmap
        support could be added later.
      - Extend the documentation with implementations notes for exporters
        that need to manually fake coherency.
      
      v3:
      - dma_buf pointer initialization goof-up noticed by Rebecca Schultz
        Zavin.
      
      Cc: Rob Clark <rob.clark@linaro.org>
      Cc: Rebecca Schultz Zavin <rebecca@android.com>
      Acked-by: NRob Clark <rob.clark@linaro.org>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      4c78513e
    • W
      nfs4.1: add BIND_CONN_TO_SESSION operation · 7c44f1ae
      Weston Andros Adamson 提交于
      This patch adds the BIND_CONN_TO_SESSION operation which is needed for
      upcoming SP4_MACH_CRED work and useful for recovering from broken connections
      without destroying the session.
      Signed-off-by: NWeston Andros Adamson <dros@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      7c44f1ae
    • A
      NFSv4.1 add nfs_inode book keeping for mdsthreshold · 2701d086
      Andy Adamson 提交于
      Keep track of the number of bytes read or written via buffered, direct, and
      mem-mapped i/o for use by mdsthreshold size_io hints.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      2701d086
    • A
      82be417a
    • A
      NFSv4.1 mdsthreshold attribute xdr · 88034c3d
      Andy Adamson 提交于
      We only support one layout type per file system, so one threshold_item4 per
      mdsthreshold4.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      88034c3d
    • D
      kernel: Move REPEAT_BYTE definition into linux/kernel.h · 44696908
      David S. Miller 提交于
      And make sure that everything using it explicitly includes
      that header file.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      44696908
  5. 24 5月, 2012 2 次提交
  6. 23 5月, 2012 5 次提交
    • J
      Revert "sched, perf: Use a single callback into the scheduler" · ab0cce56
      Jiri Olsa 提交于
      This reverts commit cb04ff9a ("sched, perf: Use a single
      callback into the scheduler").
      
      Before this change was introduced, the process switch worked
      like this (wrt. to perf event schedule):
      
           schedule (prev, next)
             - schedule out all perf events for prev
             - switch to next
             - schedule in all perf events for current (next)
      
      After the commit, the process switch looks like:
      
           schedule (prev, next)
             - schedule out all perf events for prev
             - schedule in all perf events for (next)
             - switch to next
      
      The problem is, that after we schedule perf events in, the pmu
      is enabled and we can receive events even before we make the
      switch to next - so "current" still being prev process (event
      SAMPLE data are filled based on the value of the "current"
      process).
      
      Thats exactly what we see for test__PERF_RECORD test. We receive
      SAMPLES with PID of the process that our tracee is scheduled
      from.
      
      Discussed with Peter Zijlstra:
      
       > Bah!, yeah I guess reverting is the right thing for now. Sad
       > though.
       >
       > So by having the two hooks we have a black-spot between them
       > where we receive no events at all, this black-spot covers the
       > hand-over of current and we thus don't receive the 'wrong'
       > events.
       >
       > I rather liked we could do away with both that black-spot and
       > clean up the code a little, but apparently people rely on it.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: acme@redhat.com
      Cc: paulus@samba.org
      Cc: cjashfor@linux.vnet.ibm.com
      Cc: fweisbec@gmail.com
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/20120523111302.GC1638@m.brq.redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      ab0cce56
    • S
      mfd: Fix max77693 build failure · 78302a19
      Samuel Ortiz 提交于
      Without it we get:
      
      drivers/mfd/max77693.c: In function ‘max77693_i2c_probe’:
      drivers/mfd/max77693.c:157:2: error: implicit declaration of function
      ‘max77693_irq_init’ [-Werror=implicit-function-declaration]
      drivers/mfd/max77693.c: In function ‘max77693_resume’:
      drivers/mfd/max77693.c:215:2: error: implicit declaration of function
      ‘max77693_irq_resume’ [-Werror=implicit-function-declaration]
      drivers/mfd/max77693-irq.c: In function ‘max77693_irq_lock’:
      drivers/mfd/max77693-irq.c:104:2: error: ‘struct max77693_dev’ has no member
      named ‘irqlock’
      drivers/mfd/max77693-irq.c: In function ‘max77693_irq_sync_unlock’:
      drivers/mfd/max77693-irq.c:119:11: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cache’
      drivers/mfd/max77693-irq.c:119:42: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c:122:13: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c:125:24: error: ‘struct max77693_dev’ has no member
      named ‘irqlock’
      drivers/mfd/max77693-irq.c: In function ‘max77693_irq_mask’:
      drivers/mfd/max77693-irq.c:141:11: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c:143:11: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c: In function ‘max77693_irq_unmask’:
      drivers/mfd/max77693-irq.c:153:11: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c:155:11: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c: In function ‘max77693_irq_thread’:
      drivers/mfd/max77693-irq.c:209:26: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c:211:27: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c:217:39: error: ‘struct max77693_dev’ has no member
      named ‘irq_domain’
      drivers/mfd/max77693-irq.c: In function ‘max77693_irq_init’:
      drivers/mfd/max77693-irq.c:260:2: error: ‘struct max77693_dev’ has no member
      named ‘irqlock’
      drivers/mfd/max77693-irq.c:268:12: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c:269:12: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cache’
      drivers/mfd/max77693-irq.c:271:12: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cur’
      drivers/mfd/max77693-irq.c:272:12: error: ‘struct max77693_dev’ has no member
      named ‘irq_masks_cache’
      drivers/mfd/max77693-irq.c:292:10: error: ‘struct max77693_dev’ has no member
      named ‘irq_domain’
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      78302a19
    • L
      mfd: Save device node parsed platform data for tps65910 sub devices · cb8d8654
      Laxman Dewangan 提交于
      Save the allocated memory to store the parsed device node information
      to the global device structure so that sub devices can directly use this
      pointer.
      In this way, the sub devices does not require to re-allocate the
      memory for storing the sub-devices specific device node information.
      Signed-off-by: NLaxman Dewangan <ldewangan@nvidia.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      cb8d8654
    • J
      mfd: Add r_select to lm3533 platform data · 730a3d01
      Johan Hovold 提交于
      Add resistor-select parameter to the platform data.
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      730a3d01
    • S
      if: restore token ring ARP type to header · 37c106d0
      stephen hemminger 提交于
      Recent removal of Token Ring breaks the build of iproute2.
      
      Even though Token Ring support is gone from the kernel, it is worth
      keeping the the definition of the TR ARP type to avoid breaking
      userspace programs that use this file.
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      37c106d0