1. 16 10月, 2008 1 次提交
    • S
      ieee1394: raw1394: replace BKL by local mutex, make ioctl() and mmap() thread-safe · 10963ea1
      Stefan Richter 提交于
      This removes the last usage of the Big Kernel Lock from the ieee1394
      stack, i.e. from raw1394's (unlocked_)ioctl and compat_ioctl.
      
      The ioctl()s don't need to take the BKL, but they need to be serialized
      per struct file *.  In particular, accesses to ->iso_state need to be
      serial.  We simply use a blocking mutex for this purpose because
      libraw1394 does not use O_NONBLOCK.  In practice, there is no lock
      contention anyway because most if not all libraw1394 clients use a
      libraw1394 handle only in a single thread.
      
      mmap() also accesses ->iso_state.  Until now this was unprotected
      against concurrent changes by ioctls.  Fix this bug while we are at it.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      10963ea1
  2. 22 7月, 2008 1 次提交
  3. 14 7月, 2008 1 次提交
  4. 26 4月, 2008 2 次提交
    • T
      ieee1394: silence defined but not used warning in non-modular builds · e3864970
      Tony Breeds 提交于
      Currently the kernel will issue the following warning:
      drivers/ieee1394/raw1394.c:2938: warning: 'raw1394_id_table' defined but not used
      Add #ifdef MODULE guards around the declaration.
      Signed-off-by: NTony Breeds <tony@bakeyournoodle.com>
      
      Ditto with dv1394_id_table and video1394_id_table.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      e3864970
    • P
      ieee1394: rawiso: requeue packet for transmission after skipped cycle · cc9429bc
      Pieter Palmers 提交于
      As it seems, some host controllers have issues that can cause them to
      skip cycles now and then when using large packets. I suspect that this
      is due to DMA not succeeding in time. If the transmit fifo can't contain
      more than one packet (big packets), the DMA should provide a new packet
      each cycle (125us). I am under the impression that my current PCI
      express test system can't guarantee this.
      
      In any case, the patch tries to provide a workaround as follows:
      The DMA program descriptors are modified such that when an error occurs,
      the DMA engine retries the descriptor the next cycle instead of
      stalling. This way no data is lost. The side effect of this is that
      packets are sent with one cycle delay. This however might not be that
      much of a problem for certain protocols (e.g. AM824). If they use
      padding packets for e.g. rate matching they can drop one of those to
      resync the streams.
      
      The amount of skips between two userspace wakeups is counted. This
      number is then propagated to userspace through the upper 16 bits of the
      'dropped' parameter. This allows unmodified userspace applications due
      to the following:
      1) libraw simply passes this dropped parameter to the user application
      2) the meaning of the dropped parameter is: if it's nonzero, something
      bad has happened. The actual value of the parameter at this moment does
      not have a specific meaning.
      
      A libraw client can then retrieve the number of skipped cycles and
      account for them if needed.
      Signed-off-by: NPieter Palmers <pieterp@joow.be>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      cc9429bc
  5. 18 4月, 2008 2 次提交
  6. 31 1月, 2008 1 次提交
  7. 27 7月, 2007 1 次提交
  8. 10 7月, 2007 7 次提交
  9. 28 5月, 2007 1 次提交
  10. 09 5月, 2007 1 次提交
  11. 30 4月, 2007 1 次提交
  12. 17 2月, 2007 1 次提交
  13. 13 2月, 2007 1 次提交
  14. 09 2月, 2007 1 次提交
  15. 08 12月, 2006 4 次提交
  16. 23 9月, 2006 1 次提交
  17. 18 9月, 2006 1 次提交
  18. 04 7月, 2006 2 次提交
  19. 27 6月, 2006 1 次提交
  20. 13 6月, 2006 1 次提交
  21. 29 3月, 2006 1 次提交
  22. 26 3月, 2006 1 次提交
  23. 23 11月, 2005 1 次提交
  24. 22 11月, 2005 2 次提交
  25. 07 11月, 2005 1 次提交
  26. 29 10月, 2005 1 次提交
  27. 20 10月, 2005 1 次提交