1. 25 3月, 2009 16 次提交
  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 3 次提交
    • J
      firewire: fw-sbp2: fix races · cd1f70fd
      Jay Fenlason 提交于
      1: There is a small race between queue_delayed_work() and its
         corresponding kref_get().  Do the kref_get first, and _put it again
         if the queue_delayed_work() failed, so there is no chance of the
         kref going to zero while the work is scheduled.
      2: An SBP2_LOGOUT_REQUEST could be sent out with a login_id full of
         garbage.  Initialize it to an invalid value so we can tell if we
         ever got a valid login_id.
      3: The node ID and generation may have changed but the new values may
         not yet have been recorded in lu and tgt when the final logout is
         attempted.  Use the latest values from the device in
         sbp2_release_target().
      Signed-off-by: NJay Fenlason <fenlason@redhat.com>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      cd1f70fd
    • S
      firewire: fw-sbp2: delay first login to avoid retries · 0dcfeb7e
      Stefan Richter 提交于
      This optimizes firewire-sbp2's device probe for the case that the local
      node and the SBP-2 node were discovered at the same time.  In this case,
      fw-core's bus management work and fw-sbp2's login and SCSI probe work
      are scheduled in parallel (in the globally shared workqueue and in
      fw-sbp2's workqueue, respectively).  The bus reset from fw-core may then
      disturb and extremely delay the login and SCSI probe because the latter
      fails with several command timeouts and retries and has to be retried
      from scratch.
      
      We avoid this particular situation of sbp2_login() and fw_card_bm_work()
      running in parallel by delaying the first sbp2_login() a little bit.
      
      This is meant to be a short-term fix for
      https://bugzilla.redhat.com/show_bug.cgi?id=466679.  In the long run,
      the SCSI probe, i.e. fw-sbp2's call of __scsi_add_device(), should be
      parallelized with sbp2_reconnect().
      
      Problem reported and fix tested and confirmed by Alex Kanavin.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      0dcfeb7e
    • S
      firewire: fw-ohci: initialization failure path fixes · 7007a076
      Stefan Richter 提交于
      Fix leaks when pci_probe fails.  Simplify error log strings.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      7007a076