1. 17 10月, 2007 2 次提交
  2. 13 10月, 2007 1 次提交
    • K
      Driver core: change add_uevent_var to use a struct · 7eff2e7a
      Kay Sievers 提交于
      This changes the uevent buffer functions to use a struct instead of a
      long list of parameters. It does no longer require the caller to do the
      proper buffer termination and size accounting, which is currently wrong
      in some places. It fixes a known bug where parts of the uevent
      environment are overwritten because of wrong index calculations.
      
      Many thanks to Mathieu Desnoyers for finding bugs and improving the
      error handling.
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      7eff2e7a
  3. 18 7月, 2007 1 次提交
    • R
      Freezer: make kernel threads nonfreezable by default · 83144186
      Rafael J. Wysocki 提交于
      Currently, the freezer treats all tasks as freezable, except for the kernel
      threads that explicitly set the PF_NOFREEZE flag for themselves.  This
      approach is problematic, since it requires every kernel thread to either
      set PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn't
      care for the freezing of tasks at all.
      
      It seems better to only require the kernel threads that want to or need to
      be frozen to use some freezer-related code and to remove any
      freezer-related code from the other (nonfreezable) kernel threads, which is
      done in this patch.
      
      The patch causes all kernel threads to be nonfreezable by default (ie.  to
      have PF_NOFREEZE set by default) and introduces the set_freezable()
      function that should be called by the freezable kernel threads in order to
      unset PF_NOFREEZE.  It also makes all of the currently freezable kernel
      threads call set_freezable(), so it shouldn't cause any (intentional)
      change of behaviour to appear.  Additionally, it updates documentation to
      describe the freezing of tasks more accurately.
      
      [akpm@linux-foundation.org: build fixes]
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NNigel Cunningham <nigel@nigel.suspend2.net>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Oleg Nesterov <oleg@tv-sign.ru>
      Cc: Gautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      83144186
  4. 16 7月, 2007 1 次提交
  5. 10 7月, 2007 2 次提交
  6. 01 6月, 2007 2 次提交
    • S
      ieee1394: sbp2: offer SAM-conforming target port ID in sysfs · d7794c86
      Stefan Richter 提交于
      With "modprobe sbp2 long_ieee1394_id=y", the format of
      /sys/bus/scsi/devices/*:*:*:*/ieee1394_id is changed from e.g.
      0001041010004beb:0:0 to 0001041010004beb:00042c:0000.
      
      The longer format fully conforms to object identifier sizes as per
      SAM(-2...4) and reflects what the SAM target port identifier is meant to
      contain:  A Discovery ID allegedly specified by ISO/IEC 13213:1994 ---
      however there is no such thing; the authors of SAM probably meant
      Directory ID).  Especially target nodes with multiple dynamically added
      targets may use Directory IDs to persistently identify target ports.
      
      The new format is independent of implementation details of nodemgr.
      Thus the same ieee1394_id attribute format can be implemented in the new
      firewire stack.
      
      The ieee1394_id is typically used to create persistently named links in
      /dev/disk/by-id.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      d7794c86
    • S
      ieee1394: fix calculation of sysfs attribute "address" · a52938f3
      Stefan Richter 提交于
      struct csr1212_keyval.offset is relative to 0xffff f000 0000 rather than
      0xffff f000 0400.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      a52938f3
  7. 09 5月, 2007 1 次提交
  8. 30 4月, 2007 6 次提交
  9. 28 4月, 2007 2 次提交
  10. 17 2月, 2007 1 次提交
  11. 09 2月, 2007 2 次提交
  12. 08 12月, 2006 13 次提交
  13. 08 10月, 2006 1 次提交
  14. 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
  15. 04 7月, 2006 2 次提交