1. 25 3月, 2009 9 次提交
  2. 01 2月, 2009 1 次提交
  3. 30 1月, 2009 1 次提交
  4. 29 1月, 2009 3 次提交
  5. 25 1月, 2009 1 次提交
    • S
      firewire: core: optimize card shutdown · e747a5c0
      Stefan Richter 提交于
      This fixes a regression by "firewire: keep highlevel drivers attached
      during brief connection loss":  There were 2 seconds unnecessary waiting
      added to the shutdown procedure of each controller.
      
      We use card->link as status flag to signal the device handler that there
      is no use to wait for a come-back.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      e747a5c0
  6. 24 1月, 2009 2 次提交
  7. 21 1月, 2009 3 次提交
    • S
      firewire: keep highlevel drivers attached during brief connection loss · 3d36a0df
      Stefan Richter 提交于
      There are situations when nodes vanish from the bus and come back
      quickly thereafter:
        - When certain bus-powered hubs are plugged in,
        - when certain devices are plugged into 6-port hubs,
        - when certain disk enclosures are switched from self-power to bus
          power or vice versa and break the daisy chain during the transition,
        - when the user plugs a cable out and quickly plugs it back in, e.g.
          to reorder a daisy chain (works on Mac OS X if done quickly enough),
        - when certain hubs temporarily malfunction during high bus traffic.
      
      Until now, firewire-core reported affected nodes as lost to the
      highlevel drivers (firewire-sbp2 and userspace drivers).  We now delay
      the destruction of device representations until after at least two
      seconds after the last bus reset.  If a "new" device is detected in this
      period whose bus information block and root directory header match that
      of a device which is pending for deletion, we resurrect that device and
      send update calls to highlevel drivers.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      3d36a0df
    • S
      firewire: unnecessary BM delay after generation rollover · 8cd0bbbd
      Stefan Richter 提交于
      Noticed by Jarod Wilson:  The bus manager work was unnecessarily delayed
      each time the bus generation counter rolled over.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NJarod Wilson <jwilson@redhat.com>
      8cd0bbbd
    • S
      firewire: insist on successive self ID complete events · a5c7f471
      Stefan Richter 提交于
      The whole topology code only works if the old and new topologies which
      are compared come from immediately successive self ID complete events.
      
      If there happened bus resets without self ID complete events in the
      meantime, or self ID complete events with invalid selfIDs, the topology
      comparison could identify nodes wrongly, or more likely just corrupt
      kernel memory or panic right away.
      
      We now discard all nodes of the old topology and treat all current nodes
      as new ones if the current self ID generation is not the previous one
      plus 1.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NJarod Wilson <jwilson@redhat.com>
      a5c7f471
  8. 10 1月, 2009 1 次提交
  9. 05 1月, 2009 6 次提交
  10. 10 12月, 2008 1 次提交
  11. 26 11月, 2008 1 次提交
  12. 31 10月, 2008 1 次提交
  13. 26 10月, 2008 6 次提交
  14. 16 10月, 2008 4 次提交
    • S
      firewire: fix ioctl() return code · 99692f71
      Stefan Richter 提交于
      Reported by Jay Fenlason:  ioctl() did not return as intended
        - the size of data read into ioctl_send_request,
        - the number of datagrams enqueued by ioctl_queue_iso.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      99692f71
    • S
      firewire: fix setting tag and sy in iso transmission · 7a100344
      Stefan Richter 提交于
      Reported by Jay Fenlason:
      The iso packet control accessors in fw-cdev.c had bogus masks.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      7a100344
    • S
      firewire: fw-sbp2: fix another small generation access bug · 4bbc1bdd
      Stefan Richter 提交于
      queuecommand() looked at the remote and local node IDs before it read
      the bus generation.  The corresponding race with sbp2_reconnect updating
      these data was probably impossible to happen though because the current
      code blocks the SCSI layer during reconnection.  However, better safe
      than sorry, especially if someone later improves the code to not block
      the SCSI layer.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      4bbc1bdd
    • S
      firewire: fw-sbp2: enforce s/g segment size limit · 09b12dd4
      Stefan Richter 提交于
      1. We don't need to round the SBP-2 segment size limit down to a
         multiple of 4 kB (0xffff -> 0xf000).  It is only necessary to
         ensure quadlet alignment (0xffff -> 0xfffc).
      
      2. Use dma_set_max_seg_size() to tell the DMA mapping infrastructure
         and the block IO layer about the restriction.  This way we can
         remove the size checks and segment splitting in the queuecommand
         path.
      
         This assumes that no other code in the firewire stack uses
         dma_map_sg() with conflicting requirements.  It furthermore assumes
         that the controller device's platform actually allows us to set the
         segment size to our liking.  Assert the latter with a BUG_ON().
      
      3. Also use blk_queue_max_segment_size() to tell the block IO layer
         about it.  It cannot know it because our scsi_add_host() does not
         point to the FireWire controller's device.
      
      Thanks to Grant Grundler and FUJITA Tomonori for advice.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      09b12dd4