1. 08 12月, 2006 10 次提交
  2. 08 10月, 2006 1 次提交
  3. 18 9月, 2006 3 次提交
    • S
      ieee1394: nodemgr: grab class.subsys.rwsem in nodemgr_resume_ne · a1842be8
      Stefan Richter 提交于
      nodemgr_resume_ne was iterating over nodemgr_ud_class.children without
      protection by nodemgr_ud_class.subsys.rwsem.
      
      FIXME:
      Shouldn't we rather use class->sem there, not class->subsys.rwsem?
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      a1842be8
    • S
      ieee1394: nodemgr: fix rwsem recursion · 9b516010
      Stefan Richter 提交于
      nodemgr_update_pdrv grabbed an rw semaphore (as reader) which was
      already taken by its caller's caller, nodemgr_probe_ne (as reader too).
      Reported by Miles Lane, call path pointed out by Arjan van de Ven.
      
      FIXME:
      Shouldn't we rather use class->sem there, not class->subsys.rwsem?
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      9b516010
    • S
      ieee1394: shrink tlabel pools, remove tpool semaphores · 9951903e
      Stefan Richter 提交于
      This patch reduces the size of struct hpsb_host and also removes
      semaphores from ieee1394_transactions.c.  On i386, struct hpsb_host
      shrinks from 10656 bytes to 6688 bytes.  This is accomplished by
       - using a single wait_queue for hpsb_get_tlabel instead of many
         instances of semaphores,
       - using a single lock to serialize access to all tlabel pools (the
         protected code regions are small, i.e. lock contention very low),
       - omitting the sysfs attribute tlabels_allocations.
      
      Drawback:  In the rare case that a process needs to sleep because all
      transaction labels for the node are temporarily exhausted, it is also
      woken up if a tlabel for a different node became free, checks for an
      available tlabel, and is put to sleep again.  The check is not costly
      and the situation occurs extremely rarely.  (Tlabels are typically
      only exhausted if there was no context switch to the khpsbpkt thread
      which recycles tlables.)  Therefore the benefit of reduced tpool size
      outweighs this drawback.
      
      The sysfs attributes tlabels_free and tlabels_mask are not compiled
      anymore unless CONFIG_IEEE1394_VERBOSEDEBUG is set.
      
      The by far biggest member of struct hpsb_host, the struct csr_control
      csr (5272 bytes on i386), is now placed at the end of struct hpsb_host.
      
      Note, hpsb_get_tlabel calls the macro wait_event_interruptible with a
      condition argument which has a side effect (allocation of a tlabel and
      manipulation of the packet).  This side effect happens only if the
      condition is true.  The patch relies on wait_event_interruptible not
      evaluating the condition again after it became true.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      9951903e
  4. 04 7月, 2006 6 次提交
  5. 03 7月, 2006 1 次提交
    • S
      [PATCH] ieee1394: fix cosmetic problem in speed probe · d7530a1e
      Stefan Richter 提交于
      If ieee1394.h::IEEE1394_SPEED_MAX is bigger than the actual speed of an
      1394b host adapter and the speed to another 1394b node was probed, a
      bigger speed than actually used was kept in host->speed[n].  The only
      resulting problem so far was sbp2 displaying bogus values in the syslog,
      e.g. S3200 for actual S800 connections if IEEE1394_SPEED_MAX was S3200.
      But other high-level drivers which access this field could get into more
      trouble.  (Eth1394 is the only other in-tree driver which does so.  It
      seems it is not affected.)
      
      Nodemgr now clips this value according to the host adapter's link speed.
      
      A pointer expression in nodemgr_check_speed is also changed for clarity.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NBen Collins <bcollins@ubuntu.com>
      d7530a1e
  6. 01 7月, 2006 1 次提交
  7. 26 6月, 2006 1 次提交
  8. 13 6月, 2006 1 次提交
    • B
      ieee1394: support for slow links or slow 1394b phy ports · 647dcb5f
      Ben Collins 提交于
      Add support for the following types of hardware:
       + nodes that have a link speed < PHY speed
       + 1394b PHYs that are less than S800 capable
       + 1394b/1394a adapter cable between two 1394b PHYs
      Also, S1600 and S3200 are now supported if IEEE1394_SPEED_MAX is raised.
      
      A probing function is added to nodemgr's config ROM fetching routine
      which adjusts the allowable speed if an access problem was encountered.
      Pros and Cons of the approach:
       + minimum code footprint to support this less widely used hardware
       + nearly no overhead for unaffected hardware
       - ineffective before nodemgr began to read the ROM of affected nodes
       - ineffective if ieee1394 is loaded with disable_nodemgr=1
      The speed map CSRs which are published to the bus are not touched by the
      patch.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Cc: Hakan Ardo <hakan@debian.org>
      Cc: Calculex <linux@calculex.com>
      Cc: Robert J. Kosinski <robk@cmcherald.com>
      Signed-off-by: NBen Collins <bcollins@ubuntu.com>
      647dcb5f
  9. 05 1月, 2006 1 次提交
  10. 13 12月, 2005 3 次提交
  11. 06 12月, 2005 1 次提交
  12. 02 12月, 2005 2 次提交
  13. 07 11月, 2005 1 次提交
  14. 29 10月, 2005 1 次提交
  15. 01 10月, 2005 2 次提交
  16. 08 9月, 2005 1 次提交
    • O
      [PATCH] provide MODALIAS= enviroment variable to autoload ieee1394 modules via udev · 9b19d85a
      Olaf Hering 提交于
      https://bugzilla.novell.com/show_bug.cgi?id=103746
      
      Old 2.6.13 hotplug enviroment for 'plug in firewire disk' event:
      
      ==> debug.01139.ieee1394.add.8211 <==
      set -- ieee1394
      UDEV_LOG='7'
      ACTION='add'
      DEVPATH='/class/ieee1394/00010410100036e0-0'
      SUBSYSTEM='ieee1394'
      SEQNUM='1139'
      PHYSDEVPATH='/devices/pci0001:10/0001:10:0d.0/0001:11:0a.0/fw-host0/00010410100036e0/00010410100036e0-0'
      PHYSDEVBUS='ieee1394'
      VENDOR_ID='000000'
      MODEL_ID='001010'
      GUID='00010410100036e0'
      SPECIFIER_ID='00609e'
      VERSION='010483'
      UDEVD_EVENT='1'
      
      Module spb2 is not loaded.
      
      grep sbp2 /lib/modules/2.6.13-20050901172817-default/modules.alias
      alias ieee1394:ven*mo*sp0000609Ever00010483* sbp2
      
      printf 'ieee1394:ven%08Xmo%08Xsp%08Xver%08X\n' '0x000000' '0x001010' '0x00609e' '0x010483'
      ieee1394:ven00000000mo00001010sp0000609Ever00010483
      
      modprobe -v ieee1394:ven00000000mo00001010sp0000609Ever00010483
      insmod /lib/modules/2.6.13-20050901172817-default/kernel/drivers/ieee1394/sbp2.ko
      
      Providing a MODALIAS= enviroment variable with the content above will fix it.
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Cc: Ben Collins <bcollins@debian.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9b19d85a
  17. 11 7月, 2005 1 次提交
    • B
      [PATCH] Sync up ieee-1394 · 1934b8b6
      Ben Collins 提交于
      Lots of this patch is trivial code cleanups (static vars were being
      intialized to 0, etc).
      
      There's also some fixes for ISO transmits (max buffer handling).
      Aswell, we have a few fixes to disable IRM capabilites correctly.  We've
      also disabled, by default some generally unused EXPORT symbols for the
      sake of cleanliness in the kernel.  However, instead of removing them
      completely, we felt it necessary to have a config option that allowed
      them to be enabled for the many projects outside of the main kernel tree
      that use our API for driver development.
      
      The primary reason for this patch is to revert a MODE6->MODE10 RBC
      conversion patch from the SCSI maintainers.  The new conversions handled
      directly in the scsi layer do not seem to work for SBP2.  This patch
      reverts to our old working code so that users can enjoy using Firewire
      disks and dvd drives again.
      
      We are working with the SCSI maintainers to resolve this issue outside
      of the main kernel tree.  We'll merge the patch once the SCSI layer's
      handling of the MODE10 conversion is working for us.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1934b8b6
  18. 26 6月, 2005 1 次提交
    • C
      [PATCH] Cleanup patch for process freezing · 3e1d1d28
      Christoph Lameter 提交于
      1. Establish a simple API for process freezing defined in linux/include/sched.h:
      
         frozen(process)		Check for frozen process
         freezing(process)		Check if a process is being frozen
         freeze(process)		Tell a process to freeze (go to refrigerator)
         thaw_process(process)	Restart process
         frozen_process(process)	Process is frozen now
      
      2. Remove all references to PF_FREEZE and PF_FROZEN from all
         kernel sources except sched.h
      
      3. Fix numerous locations where try_to_freeze is manually done by a driver
      
      4. Remove the argument that is no longer necessary from two function calls.
      
      5. Some whitespace cleanup
      
      6. Clear potential race in refrigerator (provides an open window of PF_FREEZE
         cleared before setting PF_FROZEN, recalc_sigpending does not check
         PF_FROZEN).
      
      This patch does not address the problem of freeze_processes() violating the rule
      that a task may only modify its own flags by setting PF_FREEZE. This is not clean
      in an SMP environment. freeze(process) is therefore not SMP safe!
      Signed-off-by: NChristoph Lameter <christoph@lameter.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3e1d1d28
  19. 21 6月, 2005 2 次提交