summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [SCSI] libsas: Add SAS_HA state flags to avoid queueing events while unloadingDarrick J. Wong2007-01-135-6/+31
| | | | | | | | Track sas_ha_struct state so that we ignore events that come in while we're shutting things down. Signed-off-by: Malahal Naineni <malahal@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: phy port lock needs irq spinlocksDarrick J. Wong2007-01-132-7/+10
| | | | | | | Convert the phy port locks to use irq spinlocks. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic94xx: Scan SAS devices asynchronouslyDarrick J. Wong2007-01-131-13/+28
| | | | | | | | | Add the necessary hooks to the aic94xx driver to support the asynchronous SCSI device scan infrastructure. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: sysfs phy control attributes should not be S_IWUGODarrick J. Wong2007-01-131-2/+2
| | | | | | | | | | Allowing the phy reset controls to be world-triggerable does not seem like a terribly good idea because SAS devices can be disrupted (and ATA devices are really disrupted) by a phy reset. By default only root should be able to do things like that. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic94xx: Lock DDB read/write accessesDarrick J. Wong2007-01-132-8/+11
| | | | | | | | | | Extend the use of the DDB lock to include all DDB accesses, because DDB updates now occur from multiple threads. This fixes the SMP timeout problems that we were occasionally seeing with a x260, because the controller got confused when the DDBs got corrupted. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic94xx: Fix DDB and SCB initializationDarrick J. Wong2007-01-133-11/+25
| | | | | | | | | Ed Chim of Adaptec informs us that the DDB registers need to be zeroed at initialization time and that some SCB initializations need to happen even if we don't use the SCB. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic94xx: Match request_firmware with release_firmwareDarrick J. Wong2007-01-133-0/+9
| | | | | | | | | The vmalloc() blob holding the sequencer firmware wasn't being released at module unload time, which resulted in a memory leak. Signed-off-by: Alexis Bruemmer <alexisb@us.ibm.com> Acked-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic94xx: Remove workqueue code from REQ_TASK_ABORT/REQ_DEVICE_RESET codeDarrick J. Wong2007-01-131-56/+66
| | | | | | | | Now that task aborts and device port resets are done by the EH, we can remove all the code that set up workqueues and such and simply call sas_task_abort and let libsas figure things out. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Delay issuing ABORT TASK TMF until the error handlerDarrick J. Wong2007-01-132-23/+31
| | | | | | | | | | | | | | | sas_task_abort() should simply abort the upper-level SCSI command and wait until the error handler to send the actual ABORT TASK command. By deferring things to the EH we simplify the concurrency coordination and eliminate some race conditions. Note that sas_task_abort has a few hooks to handle libsas internal commands properly too. Also rename do_sas_task_abort to __sas_task_abort just in case we really want to abort the task *right now* and we don't have a scsi_cmnd attached to the command. This is a hook for libata internal commands to abort. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Enable the EH strategy handler to reset a phy after a commandDarrick J. Wong2007-01-132-1/+37
| | | | | | | | | | | When a SAS LLDD needs to request a device port reset, it needs to have all commands aborted before it can reset the port. Since commands are put on the EH's list in the order that they were queued, the LLDD can set a "need reset" flag in the last task to be aborted so that the EH can reset the port after all commands are aborted. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Remove SAS_TASK_INITIATOR_ABORTED flagDarrick J. Wong2007-01-132-18/+0
| | | | | | | | | This flag is no longer necessary because we push tasks to be aborted into the EH as soon as we possibly can, and let the SCSI EH code take care of the coordination for which this flag was used. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic94xx: Don't eat TMF_QUERY_TASK resultsDarrick J. Wong2007-01-131-0/+5
| | | | | | | | | | | In this driver, TMF_QUERY_TASK translates to QUERY_SSP_TASK. The sequencer, it seems, is perfectly happy sending us a SSP response, which this function promptly "converts" into TMF_RESP_FUNC_FAILED. This leads to the SAS EH making bad decisions based on bad data, so we should not perform the conversion in this case. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Use SCAN_WILD_CARD instead of ~0Darrick J. Wong2007-01-131-1/+1
| | | | | | | Magic number cleanup. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic94xx: Set lldd_max_execute_num in sas_haDarrick J. Wong2007-01-131-0/+1
| | | | | | | | | | The aic94xx module has a parameter that looks like it should set lldd_max_execute_num in the sas_ha, but it never sets this value. Either we should set it or remove the parameter. This allows us to enable task collector mode for this driver, though it is still off by default. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Destroy the task collector thread after releasing portsDarrick J. Wong2007-01-131-2/+3
| | | | | | | | | If we use task collector mode, we can end up destroying the task collector thread before we release the ports, which is bad if a port release causes a disk I/O (such as cache flushing). Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Reset timer on taskless scsi_cmnds in sas_scsi_timed_outDarrick J. Wong2007-01-131-3/+7
| | | | | | | | | | | | | | | | Every so often, a scsi_cmnd will time out, and the libsas timeout handler will discover that the scsi_cmnd does not have a sas_task attached to it. This can happen in two cases: (1) the scsi_cmnd actually made it through libsas to the HBA and is now going through scsi_done, or (2) the scsi_cmnd has been held up (host lock, slab alloc, etc) and libsas has not yet attached a sas_task. In both cases, it is safe to ask SCSI for more time to process the command via EH_RESET_TIMER; we cannot blindly return EH_HANDLED because if (2) happens, we could end up calling scsi_done while another CPU is heading towards sas_queuecommand, which causes slab corruption when sas_task_done updates the freed scsi_cmnd. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Add a sysfs knob to enable/disable a phyDarrick J. Wong2007-01-135-2/+90
| | | | | | | | | | This patch lets a user arbitrarily enable or disable a phy via sysfs. Potential applications include shutting down a phy to replace one lane of wide port, and (more importantly) providing a method for the libata SATL to control the phy. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Don't give scsi_cmnds to the EH if they never made it to the ↵Darrick J. Wong2007-01-133-0/+17
| | | | | | | | | | | | | | | | | | | | | SAS LLDD or have already returned On a system with many SAS targets, it appears possible that a scsi_cmnd can time out without ever making it to the SAS LLDD or at the same time that a completion is occurring. In both of these cases, telling the LLDD to abort the sas_task makes no sense because the LLDD won't know about the sas_task; what we really want to do is to increase the timer. Note that this involves creating another sas_task bit to indicate whether or not the task has been sent to the LLDD; I could have implemented this by slightly redefining SAS_TASK_STATE_PENDING, but this way seems cleaner. This second version amends the aic94xx portion to set the TASK_AT_INITIATOR flag for all sas_tasks that were passed to lldd_execute_task. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Clean up rphys/port dev list after a discovery error on an ↵Darrick J. Wong2007-01-131-4/+16
| | | | | | | | | | | | | | | | | expander sas_get_port_device assigns a rphy to a domain device in anticipation of finding a disk. When a discovery error occurs in sas_discover_{sata,sas,expander}*, however, we need to clean up that rphy and the port device list so that we don't GPF. In addition, we need to check the result of the second sas_notify_lldd_dev_found. This patch seems ok on a x260, x366 and x206m. This patch fixes up sas_expander.c separately because jejb has some cleanup patches of his own that are a prerequisite. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] libsas: Clean up rphys/port dev list after a discovery error.Darrick J. Wong2007-01-131-6/+33
| | | | | | | | | | | | sas_get_port_device assigns a rphy to a domain device in anticipation of finding a disk. When a discovery error occurs in sas_discover_{sata,sas,expander}*, however, we need to clean up that rphy and the port device list so that we don't GPF. In addition, we need to check the result of the second sas_notify_lldd_dev_found. This patch seems ok on a x260, x366 and x206m. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla2xxx: correct locking while call starget_for_each_device()Seokmann Ju2007-01-131-4/+0
| | | | | | | | | | | | | Removed spin_unlock_irq()/spin_lock_irq() pairs surrounding starget_for_each_device() calls. As Matthew W. pointed out, starget_for_each_device() can be called under a spinlock being held. The change has been tested and verified on qla2xxx.ko module. Thanks Matthew W. and Hisashi H. for help. Signed-off-by: Andrew Vasquez <Andrew.vasquez@qlogic.com> Signed-off-by: Seokmann Ju <Seokmann.ju@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_scan message cosmetic errorKurt Garloff2007-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Hi, Minor typo ... In my first iteration of patches (that got merged), the BLIST_ATTACH_PQ3 actually had the value 0x800000, but that got changed later to avoid conflicts. This piece must have been overlooked. You could obviously do something like %x and then add the bitflags, but that looks overkill for something that does not tend to change. Please merge. (Patch applied against latest 2.6.20rc version that I tested.) From: Kurt Garloff <kurt@garloff.de> Subject: [SCSI SCAN] Fix logging message for PQ3 devices The blacklist flags BLIST_ATTACH_PQ3 has value 0x1000000, not 0x800000. Signed-off-by: Kurt Garloff <garloff@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] megaraid: more kernel-doc fixesRandy Dunlap2007-01-132-2/+2
| | | | | | | | More megaraid kernel-doc fixes. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Sumant Patro <sumantp@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] megaraid: fix kernel-docRandy Dunlap2007-01-136-287/+275
| | | | | | | | | | | | | | | | | kernel-doc modifications: - change "@param var" notation to @var; - change function/description separator from ':' to '-'; - change var/description separator from '-' to ':'; - fix a few doc. typos; - don't use kernel-doc /** lead-in when the doc. block is not kernel-doc; - use Linux common */ ending comment format instead of **/; - use correct function parameter names; - place function parameters immediately after the function short description; - place kernel-doc immediately before its function or macro; Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Sumant Patro <sumantp@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] megaraid_{mm,mbox}: init fix for kdumpSumant Patro2007-01-133-30/+130
| | | | | | | | | | | | | | | | 1. Changes in Initialization to fix kdump failure. Send SYNC command on loading. This command clears the pending commands in the adapter and re-initialize its internal RAID structure. Without this change, megaraid driver either panics or fails to initialize the adapter during kdump's second kernel boot if there are pending commands or interrupts from other devices sharing the same IRQ. 2. Authors email-id domain name changed from lsil.com to lsi.com. Also modified the MODULE_AUTHOR to megaraidlinux@lsi.com Signed-off-by: Sumant Patro <sumant.patro@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_debug: error processingDouglas Gilbert2007-01-131-9/+33
| | | | | | | | | | | | | | | | | | | | | | After discussions in the thread titled: [PATCH] scsi_debug: illegal blocking memory allocation here is a patch containing the discussed fix and some other fixes and additions. The patch is against lk 2.6.20-rc3 . The version is bumped to 1.81 . ChangeLog: - Change several GFP_KERNEL allocations to GFP_ATOMIC as they can be called from queuecommand() context - check above allocation returns and if out of memory report DID_REQUEUE in two cases, DID_NO_CONNECT in another, and fail slave configure() in another - add support for WRITE BUFFER command - add aborted_command error injection support (opts mask 0x10), similar mechanism to recovered_error injection. Signed-off-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptctl for mptsasDouglas Gilbert2007-01-131-1/+1
| | | | | | | | | | | | | | This patch makes the mptctl pass through available if the mptsas driver is selected. Without this patch if mptsas is the only fusion driver chosen, then the mptctl is not presented as an option. smp_utils uses the mptctl driver to pass SAS SMP functions through a MPT SAS HBA. Signed-off-by: Douglas Gilbert <dougg@torque.net> Acked-by: "Moore, Eric" <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] kill scsi_rety_commandChristoph Hellwig2007-01-133-23/+1
| | | | | | | | | | | scsi_retry_command only has a single caller, so there is no point in having this function. Additionally the memset of the sense buffer it does is entirely superflous as scsi_request_fn already calls scsi_init_cmd_errh to perform this memset before the command is reissued. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] SNI RM 53c710 driverThomas Bogendoerfer2007-01-133-0/+169
| | | | | | | This patch adds a SCSI driver for the onboard 53c710 chip of some SNI RM machines. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] NCR_D700: needs burst length setting to 8James Bottomley2007-01-131-0/+1
| | | | | | | The D700 needs the burst length setting to the previous 53c700 default of 8 otherwise it will be effectively disabled. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] 53c700: Allow setting burst lengthThomas Bogendoerfer2007-01-134-4/+24
| | | | | | | | | This is a patch, which allows not only disabling bursting but to specify different burst lenghts. This feature is needed to get the 53c700 driver working for the onboard SCSI controller of SNI RM machines, which only work reliably with a 4 word burst length. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Linux v2.6.20-rc5v2.6.20-rc5Linus Torvalds2007-01-121-1/+1
|
* [PATCH] blktrace: only add a bounce trace when we really bounceJens Axboe2007-01-121-2/+2
| | | | | | | | | | | Currently we issue a bounce trace when __blk_queue_bounce() is called, but that merely means that the device has a lower dma mask than the higher pages in the system. The bio itself may still be lower pages. So move the bounce trace into __blk_queue_bounce(), when we know there will actually be page bouncing. Signed-off-by: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge branch 'for-linus' of ↵Linus Torvalds2007-01-112-14/+7
|\ | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid: HID: Fix DRIVER_DESC macro HID: mousepoll parameter makes no sense for generic HID HID: tiny patch to remove a kmalloc cast HID: fix mappings for DiNovo Edge Keyboard - Logitech USB BT receiver
| * HID: Fix DRIVER_DESC macroJiri Kosina2007-01-091-1/+1
| | | | | | | | | | | | | | | | DRIVER_DESC macro is wrong in drivers/hid/hid-core.c. Its value is legacy from original usb+hid code and clashes with current usbhid implementation. Fix it. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
| * HID: mousepoll parameter makes no sense for generic HIDJiri Kosina2007-01-081-8/+0
| | | | | | | | | | | | | | | | mousepoll parameter makes no sense for generic HID code. It belongs to (and is implemented by) usbhid. This is also where all users are expecting it. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
| * HID: tiny patch to remove a kmalloc castAhmed S. Darwish2007-01-081-1/+1
| | | | | | | | | | | | | | Remove unnecessary cast. Signed-off-by: Ahmed Darwish <darwish.07@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
| * HID: fix mappings for DiNovo Edge Keyboard - Logitech USB BT receiverAdrian Drzewiecki2007-01-081-4/+5
| | | | | | | | | | | | | | | | | | | | This patch fixes mappings for the Logitech USB BT receiver that ships along with Logitech's DiNovo Edge keyboard. Without these changes, the "touchwheel" does not work as intended (a mouse) Signed-off-by: Adrian Drzewiecki <adriand@drze.net> Acked-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* | Merge branch 'release' of ↵Linus Torvalds2007-01-1112-42/+97
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: Revert "ACPI: ibm-acpi: make non-generic bay support optional" ACPI: update MAINTAINERS ACPI: schedule obsolete features for deletion ACPI: delete two spurious ACPI messages ACPI: rename cstate_entry_s to cstate_entry ACPI: ec: enable printk on cmdline use ACPI: Altix: ACPI _PRT support
| * | Revert "ACPI: ibm-acpi: make non-generic bay support optional"Henrique de Moraes Holschuh2007-01-112-23/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2df910b4c3edcce9a0c12394db6f5f4a6e69c712. ACPI_BAY has not been merged into mainline yet, so the changes to ibm-acpi related Kconfig entries that depend on ACPI_BAY were permanently disabling ibm-acpi bay support. This is a serious regression for ThinkPad users. Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Signed-off-by: Len Brown <len.brown@intel.com>
| * | Pull sgi into release branchLen Brown2007-01-114-0/+10
| |\ \
| | * | ACPI: Altix: ACPI _PRT supportJohn Keller2007-01-044-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide ACPI _PRT support for SN Altix systems. The SN Altix platform does not conform to the IOSAPIC IRQ routing model, so a new acpi_irq_model (ACPI_IRQ_MODEL_PLATFORM) has been defined. The SN platform specific code sets acpi_irq_model to this new value, and keys off of it in acpi_register_gsi() to avoid the iosapic code path. Signed-off-by: John Keller <jpk@sgi.com> Signed-off-by: Len Brown <len.brown@intel.com>
| * | | Pull trivial into release branchLen Brown2007-01-116-19/+86
| |\ \ \
| | * | | ACPI: update MAINTAINERSLen Brown2007-01-111-5/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | s/Maintained/Supported/ and document some sub-maintainers for ACPI drivers. Signed-off-by: Len Brown <len.brown@intel.com>
| | * | | ACPI: schedule obsolete features for deletionLen Brown2007-01-111-0/+45
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Len Brown <len.brown@intel.com>
| | * | | ACPI: delete two spurious ACPI messagesVenkatesh Pallipadi2007-01-102-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ACPI: Getting cpuindex for acpiid 0x4 acpi_processor-0742 [00] processor_preregister_: Error while parsing _PSD domain information. Assuming no coordination http://bugzilla.kernel.org/show_bug.cgi?id=7286 Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
| | * | | ACPI: rename cstate_entry_s to cstate_entryVenkatesh Pallipadi2007-01-101-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | style change only. Signed-off-by: Len Brown <len.brown@intel.com>
| | * | | ACPI: ec: enable printk on cmdline useLen Brown2007-01-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if somebody uses "ec_intr=", lets be sure to capture that in the dmesg even in the non-debug case. Signed-off-by: Len Brown <len.brown@intel.com>
* | | | | Merge branch 'drm-patches' of ↵Linus Torvalds2007-01-111-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: i915: Fix a DRM_ERROR that should be DRM_DEBUG.
| * | | | | i915: Fix a DRM_ERROR that should be DRM_DEBUG.=?utf-8?q?Michel_D=C3=A4nzer?=2007-01-081-1/+1
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | It would clutter up the kernel output in a situation which is legitimate before X.org 7.2 and handled correctly by the 3D driver. Signed-off-by: Dave Airlie <airlied@linux.ie>
OpenPOWER on IntegriCloud