1. 25 Jul, 2008 2 commits
    • Stefan Richter's avatar
      firewire: avoid memleak after phy config transmit failure · c0220d68
      Stefan Richter authored
      Use only statically allocated data for PHY config packet transmission.
      With the previous incarnation, some data wouldn't be freed if the packet
      transmit callback was never called.
      
      A theoretical drawback now is that, in PCs with more than one card,
      card A may complete() for a waiter on card B.  But this is highly
      unlikely and its impact not serious.  Bus manager B may reset bus B
      before the PHY config went out, but the next phy config on B should be
      fine.  However, with a timeout of 100ms, this situation is close to
      impossible.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      c0220d68
    • Stefan Richter's avatar
      firewire: fw-ohci: TSB43AB22/A dualbuffer workaround · 95984f62
      Stefan Richter authored
      Isochronous reception in dualbuffer mode is reportedly broken with
      TI TSB43AB22A on x86-64.  Descriptor addresses above 2G have been
      determined as the trigger:
      https://bugzilla.redhat.com/show_bug.cgi?id=435550
      
      Two fixes are possible:
        - pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK);
          at least when IR descriptors are allocated, or
        - simply don't use dualbuffer.
      This fix implements the latter workaround.
      
      But we keep using dualbuffer on x86-32 which won't give us highmen (and
      thus physical addresses outside the 31bit range) in coherent DMA memory
      allocations.  Right now we could for example also whitelist PPC32, but
      DMA mapping implementation details are expected to change there.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: default avatarJarod Wilson <jwilson@redhat.com>
      95984f62
  2. 20 Jul, 2008 1 commit
    • JiSheng Zhang's avatar
      firewire: queue the right number of data · f9543d0a
      JiSheng Zhang authored
      There will be 4 padding bytes in struct fw_cdev_event_response on some platforms
      The member:__u32 data will point to these padding bytes. While queue the
      response and data in complete_transaction in fw-cdev.c, it will queue like this:
      |response(excluding padding bytes)|4 padding bytes|4 padding bytes|data.
      It queue 4 extra bytes. That is to say it use "&response + sizeof(response)"
      while other place of kernel and userspace library use "&response + offsetof
      (typeof(response), data)". So it will lost the last 4 bytes of data. This patch
      can fix it while not changing the struct definition.
      Signed-off-by: default avatarJiSheng Zhang <jszhang3@mail.ustc.edu.cn>
      
      This fixes responses to outbound block read requests on 64bit architectures.
      Tested on i686, x86-64, and x86-64 with i686 userland, using firecontrol and
      gscanbus.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      f9543d0a
  3. 14 Jul, 2008 13 commits
  4. 13 Jul, 2008 6 commits
  5. 12 Jul, 2008 17 commits
  6. 11 Jul, 2008 1 commit