aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* USB HID: update CONFIG_USB_HIDINPUT_POWERBOOK descriptionNoel Kothe2007-05-08
| | | | | | | This option is needed on the Apple Intel Laptops too. Signed-off-by: Noel Kothe <noel@debian.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: add input mappings for non-working keys on Logitech S510 remoteCharles Pillar2007-05-08
| | | | | | | HID-input mapping for non-working S510 remote control buttons. Signed-off-by: Charles Pillar <pillarama@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6Linus Torvalds2007-05-08
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: (32 commits) Use menuconfig objects - hwmon hwmon/smsc47b397: Use dynamic sysfs callbacks hwmon/smsc47b397: Convert to a platform driver hwmon/w83781d: Deprecate W83627HF support hwmon/w83781d: Use dynamic sysfs callbacks hwmon/w83781d: Be less i2c_client-centric hwmon/w83781d: Clean up conversion macros hwmon/w83781d: No longer use i2c-isa hwmon/ams: Do not print error on systems without apple motion sensor hwmon/ams: Fix I2C read retry logic hwmon: New AD7416, AD7417 and AD7418 driver hwmon/coretemp: Add documentation hwmon: New coretemp driver i386: Use functions from library in msr driver i386: Add safe variants of rdmsr_on_cpu and wrmsr_on_cpu hwmon/lm75: Use dynamic sysfs callbacks hwmon/lm78: Use dynamic sysfs callbacks hwmon/lm78: Be less i2c_client-centric hwmon/lm78: No longer use i2c-isa hwmon: New max6650 driver ...
| * Use menuconfig objects - hwmonJan Engelhardt2007-05-08
| | | | | | | | | | | | | | | | | | Change Kconfig objects from "menu, config" into "menuconfig" so that the user can disable the whole feature without having to enter the menu first. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/smsc47b397: Use dynamic sysfs callbacksJean Delvare2007-05-08
| | | | | | | | | | | | | | This lets us get rid of macro-generated functions and shrinks the driver size by a small amount. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/smsc47b397: Convert to a platform driverJean Delvare2007-05-08
| | | | | | | | | | | | | | Convert the smsc47b397 driver from the nonsensical i2c-isa hack to a regular platform driver. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/w83781d: Deprecate W83627HF supportJean Delvare2007-05-08
| | | | | | | | | | | | The W83627HF is better supported by the w83627hf driver. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/w83781d: Use dynamic sysfs callbacksJean Delvare2007-05-08
| | | | | | | | | | | | | | This lets us get rid of some of the macro-generated functions and shrinks the driver size significantly (about 9%). Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/w83781d: Be less i2c_client-centricJean Delvare2007-05-08
| | | | | | | | | | | | | | | | Use the driver data structure as the main device reference, instead of the i2c client. It makes the driver a bit smaller, and makes more sense as this is an hybrid driver, supporting both I2C and ISA devices. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/w83781d: Clean up conversion macrosJean Delvare2007-05-08
| | | | | | | | | | | | | | | | | | | | | | * Fix voltage rounding * Drop useless macros * Drop useless casts * Turn macros evaluating their parameters more than once into inline functions * Use signed variables for temperatures Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/w83781d: No longer use i2c-isaJean Delvare2007-05-08
| | | | | | | | | | | | | | Reimplement the ISA device support as a platform driver, so that we no longer rely on i2c-isa. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/ams: Do not print error on systems without apple motion sensorOlaf Hering2007-05-08
| | | | | | | | | | | | | | | | | | | | It is not an error if a system has no ams hardware. Do not clutter dmesg in this case. Signed-off-by: Olaf Hering <olaf@aepfle.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Michael Hanselmann <linux-kernel@hansmi.ch> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/ams: Fix I2C read retry logicStelian Pop2007-05-08
| | | | | | | | | | | | | | Fix sleep and retry logic in ams-i2c. Signed-off-by: Stelian Pop <stelian@popies.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon: New AD7416, AD7417 and AD7418 driverAlessandro Zummo2007-05-08
| | | | | | | | | | | | | | A driver for the Analog Devices AD7416, AD7417 and AD7418 chips. Signed-off-by: Alessandro Zummo <a.zummo@towertech.it> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/coretemp: Add documentationRudolf Marek2007-05-08
| | | | | | | | | | | | | | Documentation for the coretemp driver. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon: New coretemp driverRudolf Marek2007-05-08
| | | | | | | | | | | | | | | | Add the support for the digital temperature sensor found in recent Intel Core CPUs. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * i386: Use functions from library in msr driverNicolas Boichat2007-05-08
| | | | | | | | | | | | | | | | | | Use safe MSR functions provided by arch/*/lib/msr-on-cpu.c in arch/i386/kernel/msr.c. Signed-off-by: Nicolas Boichat <nicolas@boichat.ch> Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * i386: Add safe variants of rdmsr_on_cpu and wrmsr_on_cpuRudolf Marek2007-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add safe (exception handled) variants of rdmsr_on_cpu and wrmsr_on_cpu. You should use these when the target MSR may not actually exist, as doing so could trigger an exception which the regular functions do not handle. The safe variants are slower, though. The upcoming coretemp hardware monitoring driver will need this. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Cc: Alexey Dobriyan <adobriyan@openvz.org> Cc: Dave Jones <davej@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/lm75: Use dynamic sysfs callbacksJean Delvare2007-05-08
| | | | | | | | | | | | | | This lets us get rid of macro-generated functions and shrinks the driver size by about 8%. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/lm78: Use dynamic sysfs callbacksJean Delvare2007-05-08
| | | | | | | | | | | | | | This lets us get rid of macro-generated functions and shrinks the driver size significantly (about 10%). Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/lm78: Be less i2c_client-centricJean Delvare2007-05-08
| | | | | | | | | | | | | | | | Use the driver data structure as the main device reference, instead of the i2c client. It makes the driver a bit smaller, and makes more sense as this is an hybrid driver, supporting both I2C and ISA devices. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/lm78: No longer use i2c-isaJean Delvare2007-05-08
| | | | | | | | | | | | | | Reimplement the ISA device support as a platform driver, so that we no longer rely on i2c-isa. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon: New max6650 driverHans-Juergen Koch2007-05-08
| | | | | | | | | | | | | | | | This driver supports the Maxim MAX6650 and MAX6651 fan speed monitoring and control chips. Signed-off-by: Hans J. Koch <hjk@linutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/smsc47m1: Use dynamic sysfs callbacksJean Delvare2007-05-08
| | | | | | | | | | | | | | This lets us get rid of macro-generated functions and shrinks the driver size by about 7%. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/smsc47m1: Use DRVNAME consistentlyJean Delvare2007-05-08
| | | | | | | | | | | | Also use pr_info instead of printk. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/smsc47m1: Convert to a platform driverJean Delvare2007-05-08
| | | | | | | | | | | | | | Convert the smsc47m1 driver from the nonsensical i2c-isa hack to a regular platform driver. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon: Document the new fan1_target interface fileJean Delvare2007-05-08
| | | | | | | | Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/w83627hf: Convert to a platform driverJean Delvare2007-05-08
| | | | | | | | | | | | | | Convert the w83627hf driver from the nonsensical i2c-isa hack to a regular platform driver. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/w83627hf: Preliminary cleanupsJean Delvare2007-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some preliminary cleanups to the w83627hf hardware monitoring driver, to make its conversion to a platform driver easier: * Add missing include ioport.h * Drop unused enum value any_chip * Group module parameters * Define and use DRVNAME * Drop unused struct member lm75 * Move the handling of force_addr and device activation to w83627hf_find * Consistently use local type in w83627hf_init_client Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon-vid: Add support for VIA EstherRudolf Marek2007-05-08
| | | | | | | | | | | | | | | | Update the VID type for certain VIA processors and remove the Itanium entries. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon: Only call vid_which_vrm() when neededJean Delvare2007-05-08
| | | | | | | | | | | | | | | | | | | | | | Some hardware monitoring drivers create the VID/VRM interface files conditionally depending on the chip model or configuration. We should only call vid_which_vrm() when we are actually going to create the files. Not only it is more logical and efficient that way, but it also prevents printing unnecessary warnings such as the one reported here: http://lists.lm-sensors.org/pipermail/lm-sensors/2007-February/018954.html Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/smsc47m1: Get rid of a useless mutexJean Delvare2007-05-08
| | | | | | | | | | | | | | | | | | The smsc47m1 driver uses a mutex to protect the accesses to the hardware registers. It really doesn't need any protection, as the register space is flat. Get rid of that mutex for a smaller and faster driver. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon/smsc47m1: Add support for the LPC47M292Jean Delvare2007-05-08
| | | | | | | | | | | | | | | | The new SMSC LPC47M292 Super-I/O chip is a bit different from the previous ones, it supports a 3rd fan, but unfortunately the pin configuration registers are different. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * hwmon: Request the I/O regions in platform driversJean Delvare2007-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | My understanding of the resource management in the Linux 2.6 device driver model is that the devices should declare their resources, and then when a driver attaches to a device, it should request the resources it will be using, so as to mark them busy. This is how the PCI and PNP subsystems work, you can clearly see the two levels of resources (declaration and request) in /proc/ioports for these devices. So I believe that our platform hardware monitoring drivers should follow the same logic. At the moment, we only declare the resources but we do not request them. This patch adds the I/O region request and release calls. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Juerg Haefliger <juergh@gmail.com>
| * hwmon/smsc47m192: Document the LPC47M292 as supportedJean Delvare2007-05-08
| | | | | | | | | | | | | | | | The new SMSC LPC47M292 Super-I/O chip includes a hardware monitoring block which is compatible with those of the LPC47M192. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hartmut Rick <linux@rick.claranet.de>
* | Fix sunrpc warning noiseGeert Uytterhoeven2007-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit c5a4dd8b7c15927a8fbff83171b57cad675a79b9 introduced the following compiler warnings: net/sunrpc/sched.c:766: warning: format '%u' expects type 'unsigned int', but argument 3 has type 'size_t' net/sunrpc/sched.c:785: warning: format '%u' expects type 'unsigned int', but argument 2 has type 'size_t' - Use %zu to format size_t - Kill 2 useless casts Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | Merge git://oss.sgi.com:8090/xfs/xfs-2.6Linus Torvalds2007-05-08
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://oss.sgi.com:8090/xfs/xfs-2.6: [XFS] Add lockdep support for XFS [XFS] Fix race in xfs_write() b/w dmapi callout and direct I/O checks. [XFS] Get rid of redundant "required" in msg. [XFS] Export via a function xfs_buftarg_list for use by kdb/xfsidbg. [XFS] Remove unused ilen variable and references. [XFS] Fix to prevent the notorious 'NULL files' problem after a crash. [XFS] Fix race condition in xfs_write(). [XFS] Fix uquota and oquota enforcement problems. [XFS] propogate return codes from flush routines [XFS] Fix quotaon syscall failures for group enforcement requests. [XFS] Invalidate quotacheck when mounting without a quota type. [XFS] reducing the number of random number functions. [XFS] remove more misc. unused args [XFS] the "aendp" arg to xfs_dir2_data_freescan is always NULL, remove it. [XFS] The last argument "lsn" of xfs_trans_commit() is always called with
| * | [XFS] Add lockdep support for XFSLachlan McIlroy2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | SGI-PV: 963965 SGI-Modid: xfs-linux-melb:xfs-kern:28485a Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] Fix race in xfs_write() b/w dmapi callout and direct I/O checks.Lachlan McIlroy2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In xfs_write() the iolock is dropped and reacquired in XFS_SEND_DATA() which means that the file could change from not-cached to cached and we need to redo the direct I/O checks. We should also redo the direct I/O checks when the file size changes regardless if O_APPEND is set or not. SGI-PV: 963483 SGI-Modid: xfs-linux-melb:xfs-kern:28440a Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] Get rid of redundant "required" in msg.Utako Kusaka2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | SGI-PV: 963466 SGI-Modid: xfs-linux-melb:xfs-kern:28416a Signed-off-by: Utako Kusaka <utako@tnes.nec.co.jp> Signed-off-by: Tim Shimmin <tes@sgi.com> Signed-off-by: Christoph Hellwig <hch@infradead.org>
| * | [XFS] Export via a function xfs_buftarg_list for use by kdb/xfsidbg.Tim Shimmin2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | SGI-PV: 963465 SGI-Modid: xfs-linux-melb:xfs-kern:28414a Signed-off-by: Tim Shimmin <tes@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
| * | [XFS] Remove unused ilen variable and references.Tim Shimmin2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | SGI-PV: 907752 SGI-Modid: xfs-linux-melb:xfs-kern:28344a Signed-off-by: Tim Shimmin <tes@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
| * | [XFS] Fix to prevent the notorious 'NULL files' problem after a crash.Lachlan McIlroy2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem that has been addressed is that of synchronising updates of the file size with writes that extend a file. Without the fix the update of a file's size, as a result of a write beyond eof, is independent of when the cached data is flushed to disk. Often the file size update would be written to the filesystem log before the data is flushed to disk. When a system crashes between these two events and the filesystem log is replayed on mount the file's size will be set but since the contents never made it to disk the file is full of holes. If some of the cached data was flushed to disk then it may just be a section of the file at the end that has holes. There are existing fixes to help alleviate this problem, particularly in the case where a file has been truncated, that force cached data to be flushed to disk when the file is closed. If the system crashes while the file(s) are still open then this flushing will never occur. The fix that we have implemented is to introduce a second file size, called the in-memory file size, that represents the current file size as viewed by the user. The existing file size, called the on-disk file size, is the one that get's written to the filesystem log and we only update it when it is safe to do so. When we write to a file beyond eof we only update the in- memory file size in the write operation. Later when the I/O operation, that flushes the cached data to disk completes, an I/O completion routine will update the on-disk file size. The on-disk file size will be updated to the maximum offset of the I/O or to the value of the in-memory file size if the I/O includes eof. SGI-PV: 958522 SGI-Modid: xfs-linux-melb:xfs-kern:28322a Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] Fix race condition in xfs_write().Lachlan McIlroy2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change addresses a race in xfs_write() where, for direct I/O, the flags need_i_mutex and need_flush are setup before the iolock is acquired. The logic used to setup the flags may change between setting the flags and acquiring the iolock resulting in these flags having incorrect values. For example, if a file is not currently cached then need_i_mutex is set to zero and then if the file is cached before the iolock is acquired we will fail to do the flushinval before the direct write. The flush (and also the call to xfs_zero_eof()) need to be done with the iolock held exclusive so we need to acquire the iolock before checking for cached data (or if the write begins after eof) to prevent this state from changing. For direct I/O I've chosen to always acquire the iolock in shared mode initially and if there is a need to promote it then drop it and reacquire it. There's also some other tidy-ups including removing the O_APPEND offset adjustment since that work is done in generic_write_checks() (and we don't use offset as an input parameter anywhere). SGI-PV: 962170 SGI-Modid: xfs-linux-melb:xfs-kern:28319a Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] Fix uquota and oquota enforcement problems.Kouta Ooizumi2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When uquota and oquota (gquota/pquota) are enabled for accounting both are enforced if ether has enforcement active. Conditions: - Both XFS_UQUOTA_ACCT and XFS_GQUOTA_ACCT are enabled. - Either XFS_UQUOTA_ENFD or XFS_OQUOTA_ENFD is enabled. - The usage without enforce is reached at the soft limit. Problems: 1. "repquota" shows all grace time even if no enforcement. 2. we cannot make a file over a hard limits even if no enforcement. SGI-PV: 962291 SGI-Modid: xfs-linux-melb:xfs-kern:28272a Signed-off-by: Kouta Ooizumi <k-ooizumi@tnes.nec.co.jp> Signed-off-by: Donald Douwsma <donaldd@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] propogate return codes from flush routinesLachlan McIlroy2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch handles error return values in fs_flush_pages and fs_flushinval_pages. It changes the prototype of fs_flushinval_pages so we can propogate the errors and handle them at higher layers. I also modified xfs_itruncate_start so that it could propogate the error further. SGI-PV: 961990 SGI-Modid: xfs-linux-melb:xfs-kern:28231a Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Stewart Smith <stewart@flamingspork.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] Fix quotaon syscall failures for group enforcement requests.Donald Douwsma2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xfs_qm_scall_quotaon was incorrectly failing requests to enable group quota enforcement. Fixes logic error in OQUOTA handling. SGI-PV: 961964 SGI-Modid: xfs-linux-melb:xfs-kern:28227a Signed-off-by: Donald Douwsma <donaldd@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] Invalidate quotacheck when mounting without a quota type.Donald Douwsma2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When quotas are mounted or remounted without a particular quota type the quota accounting for that type becomes invalid. Previously we were ignoring this leading to accounting errors. SGI-PV: 961964 SGI-Modid: xfs-linux-melb:xfs-kern:28225a Signed-off-by: Donald Douwsma <donaldd@sgi.com> Signed-off-by: Utako Kusaka <utako@tnes.nec.co.jp> Signed-off-by: Vlad Apostolov <vapo@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] reducing the number of random number functions.Joe Perches2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch provided by Joe Perches SGI-PV: 961696 SGI-Modid: xfs-linux-melb:xfs-kern:28209a Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
| * | [XFS] remove more misc. unused argsEric Sandeen2007-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch provided by Eric Sandeen. SGI-PV: 961695 SGI-Modid: xfs-linux-melb:xfs-kern:28205a Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>