1. 23 8月, 2013 1 次提交
  2. 04 6月, 2013 1 次提交
  3. 19 2月, 2013 1 次提交
  4. 16 1月, 2013 1 次提交
  5. 17 8月, 2012 1 次提交
  6. 14 6月, 2012 1 次提交
    • N
      W1: split master mutex to avoid deadlocks. · b02f8bed
      NeilBrown 提交于
      The 'mutex' in struct w1_master is use for two very different
      purposes.
      
      Firstly it protects various data structures such as the list of all
      slaves.
      
      Secondly it protects the w1 buss against concurrent accesses.
      
      This can lead to deadlocks when the ->probe code called while adding a
      slave needs to talk on the bus, as is the case for power_supply
      devices.
      ds2780 and ds2781 drivers contain a work around to track which
      process hold the lock simply to avoid this deadlock.  bq27000 doesn't
      have that work around and so deadlocks.
      
      There are other possible deadlocks involving sysfs.
      When removing a device the sysfs s_active lock is held, so the lock
      that protects the slave list must take precedence over s_active.
      However when access power_supply attributes via sysfs, the s_active
      lock must take precedence over the lock that protects accesses to
      the bus.
      
      So to avoid deadlocks between w1 slaves and sysfs, these must be
      two separate locks.  Making them separate means that the work around
      in ds2780 and ds2781 can be removed.
      
      So this patch:
       - adds a new mutex: "bus_mutex" which serialises access to the bus.
       - takes in mutex in w1_search and ds1wm_search while they access
         the bus for searching.  The mutex is dropped before calling the
         callback which adds the slave.
       - changes all slaves to use bus_mutex instead of mutex to
         protect access to the bus
       - removes w1_ds2790_io_nolock and w1_ds2781_io_nolock, and the
         related code from drivers/power/ds278[01]_battery.c which
         calls them.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Acked-by: NEvgeniy Polyakov <zbr@ioremap.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b02f8bed
  7. 18 11月, 2011 1 次提交
    • M
      W1: w1_therm: release the bus during conversion on externally powered devices · 377195c4
      Maciej Szmigiero 提交于
      w1_therm devices can either be bus powered or externally powered.
      
      When device is bus powered during temperature conversion the bus
      have to be left high to provide necessary power. Some masters also allow
      strong power-up to be enabled in this case.
      Naturally, no communication over bus can occur during that time.
      
      However, if device has external power then there is no such restriction,
      and host can talk to other devices during temperature conversion.
      
      There is command which allows us to check how device is powered,
      this patch uses it to release the bus on externally w1_therm powered devices
      during temperature conversion.
      
      Also, this changes uninterruptible sleeps there into interruptible ones to
      avoid long uninterruptible sleep if w1 subsystem happens to grab bus for
      scan during w1_therm_read().
      Signed-off-by: NMaciej Szmigiero <mhej@o2.pl>
      Acked-by: NEvgeniy Polyakov <zbr@ioremap.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      377195c4
  8. 26 8月, 2011 1 次提交
  9. 27 7月, 2011 1 次提交
  10. 25 4月, 2010 1 次提交
  11. 12 2月, 2009 1 次提交
  12. 17 10月, 2008 3 次提交
  13. 07 2月, 2008 1 次提交
    • D
      W1: w1_therm.c standardize units to millidegrees C · 7129b126
      David Fries 提交于
      Standardize the temperature units to millidegrees C for the two sensor
      conversion routines.  Previously the routines were,
      
      w1_DS18B20_convert_temp degrees C
      w1_DS18S20_convert_temp millidegrees C
      
      Unfortunately this will break any program using the ds18b20 value as it
      will now be 1000 times bigger.  Fortunately there can't be that many users
      out there, or some of these bugs will have been fixed by now, such as the
      negative C error (see previous patch) that makes me think the ds18b20 is
      the better choice to change because of the current bugs.
      Signed-off-by: NDavid Fries <david@fries.net>
      Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7129b126
  14. 23 1月, 2008 2 次提交
    • D
      W1: w1_therm.c is flagging 0C etc as invalid · 80c002dd
      David Fries 提交于
      The extra rom[0] check is flagging valid temperatures as invalid when
      there is already a CRC data transmission check.
      
      w1_therm_read_bin()
      	if (rom[8] == crc && rom[0])
      		verdict = 1;
      
      Requiring rom[0] to be non-zero will flag as invalid temperature
      conversions when the low byte is zero, specifically the temperatures 0C,
      16C, 32C, 48C, -16C, -32C, and -48C.
      
      The CRC check is produced on the device for the previous 8 bytes and is
      required to ensure the data integrity in transmission.  I don't see why the
      extra check for rom[0] being non-zero is in there.  Evgeniy Polyakov didn't
      know either.  Just for a check I unplugged the sensor, executed a
      temperature conversion, and read the results.  The read was all ff's, which
      also failed the CRC, so it doesn't need to protect against a disconnected
      sensor.
      
      I have more extensive patches in the work, but these two trivial ones will
      do for today.  I would like to hear from people who use the ds2490 USB to
      one wire dongle.  1 if you would be willing to test the patches as I
      currently only have the one sensor on a short parisite powered wire, 2 if
      there is any cheap sources for the ds2490.
      Signed-off-by: NDavid Fries <david@fries.net>
      Acked-by: NEvgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      80c002dd
    • D
      W1: w1_therm.c ds18b20 decode freezing temperatures correctly · 941ed3b5
      David Fries 提交于
      Correct the decoding of negative C temperatures.  The code did a binary OR
      of two bytes to make a 16 bit value, but assignd it to an integer.  This
      caused the value to not be sign extended and to loose that it was a
      negative number in the assignment.
      
      Before the patch (in my freezer),
      	w1_slave
      	ed fe 4b 46 7f ff 03 10 e4 : crc=e4 YES
      	ed fe 4b 46 7f ff 03 10 e4 t=4078
      With the patch,
      	e3 fe 4b 46 7f ff 0d 10 81 : crc=81 YES
      	e3 fe 4b 46 7f ff 0d 10 81 t=-17
      Signed-off-by: NDavid Fries <david@fries.net>
      Acked-by: NEvgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      941ed3b5
  15. 12 7月, 2007 2 次提交
    • Z
      sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes · 91a69029
      Zhang Rui 提交于
      Well, first of all, I don't want to change so many files either.
      
      What I do:
      Adding a new parameter "struct bin_attribute *" in the
      .read/.write methods for the sysfs binary attributes.
      
      In fact, only the four lines change in fs/sysfs/bin.c and
      include/linux/sysfs.h do the real work.
      But I have to update all the files that use binary attributes
      to make them compatible with the new .read and .write methods.
      I'm not sure if I missed any. :(
      
      Why I do this:
      For a sysfs attribute, we can get a pointer pointing to the
      struct attribute in the .show/.store method,
      while we can't do this for the binary attributes.
      I don't know why this is different, but this does make it not
      so handy to use the binary attributes as the regular ones.
      So I think this patch is reasonable. :)
      
      Who benefits from it:
      The patch that exposes ACPI tables in sysfs
      requires such an improvement.
      All the table binary attributes share the same .read method.
      Parameter "struct bin_attribute *" is used to get
      the table signature and instance number which are used to
      distinguish different ACPI table binary attributes.
      
      Without this parameter, we need to offer different .read methods
      for different ACPI table binary attributes.
      This is impossible as there are various ACPI tables on different
      platforms, and we don't know what they are until they are loaded.
      Signed-off-by: NZhang Rui <rui.zhang@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      91a69029
    • T
      sysfs: kill unnecessary attribute->owner · 7b595756
      Tejun Heo 提交于
      sysfs is now completely out of driver/module lifetime game.  After
      deletion, a sysfs node doesn't access anything outside sysfs proper,
      so there's no reason to hold onto the attribute owners.  Note that
      often the wrong modules were accounted for as owners leading to
      accessing removed modules.
      
      This patch kills now unnecessary attribute->owner.  Note that with
      this change, userland holding a sysfs node does not prevent the
      backing module from being unloaded.
      
      For more info regarding lifetime rule cleanup, please read the
      following message.
      
        http://article.gmane.org/gmane.linux.kernel/510293
      
      (tweaked by Greg to not delete the field just yet, to make it easier to
      merge things properly.)
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      7b595756
  16. 29 6月, 2007 1 次提交
  17. 13 2月, 2007 1 次提交
  18. 04 12月, 2006 1 次提交
  19. 23 6月, 2006 2 次提交
  20. 24 3月, 2006 1 次提交
  21. 09 9月, 2005 3 次提交
  22. 22 6月, 2005 4 次提交
  23. 21 6月, 2005 1 次提交
  24. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4