lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080328122311.GA3613@spacedout.fries.net>
Date:	Fri, 28 Mar 2008 07:23:11 -0500
From:	David Fries <david@...es.net>
To:	linux-kernel@...r.kernel.org
Cc:	Evgeniy Polyakov <johnpol@....mipt.ru>
Subject: [PATCH 0/35] W1: w1 core deadlock and oops fixes, ds2490 updates

The Linux one wire system allows talking to little devices, mostly
sensors.  Sensors such as temperature sensors that I want to put
around the house, but first the one wire system and ds2490 USB to one
wire controller driver needs to be stable.  After a kernel panic, I
did most all of the development inside of qemu.  I had an issue with
bulk transfers failing unless I told qemu to disconnect and reconnect
the USB device every time I reloaded, the module, but it worked really
nicely.  What follows is a long list of fixes and enhancements.  I
would like some tester feedback.  I only have the ds2490 USB to one
wire controller and ds18b20 thermometer.

This set of patches fixes bugs in the one wire driver and the ds2490
one wire USB controller.  Some of the bugs will deadlock the one wire
system and print out a message every second reminding you of this.
Others will panic the system.  One will spam with printk in an
infinite loop.  The w1_therm slave device driver would overflow the
userspace buffer, and didn't even work properly with `cat`.

In the name of being nice to the rest of the system, I've eliminated a
thread that was waking up and polling every second, for pretty much
only startup and shutdown events.  The other thread, w1_process, will
now block when there isn't anything to do, and if sleeping it will be
immediately woken for a new search or for preparing to exit.

ds2490 USB to one wire master driver has been improved.  The original
code was observed to take 3.91 seconds for a temperature conversion
and reading with 0.002s user and 3.001s system times.  The system was
very unresponsive, mostly due to some mdelay(750) calls.  Now it is
taking 0.860s elapsed with 0.004s user and 0.004s system time.  That
is pretty good considering that the temperature conversion takes 750ms
(rounded up to 752ms).  Some of the 108ms overload could be reduced by
a shorter reset period, overdrive data transfer speed, and combining
USB operations.  The driver now supports the strong pullup, which is
useful for parasite powered devices.

I was keeping track of my changes in cvs.  I've included the file, cvs
version number and log for that commit that make up the given patch.
The cvs number is just to help me keep everything organized to make
the patches.  The patches are against 2.6.25-rc4.

Signed-off-by: David Fries <david@...es.net>

--
David Fries <david@...es.net>
http://fries.net/~david/ (PGP encryption key available)

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ