summaryrefslogtreecommitdiff
path: root/drivers/staging/hv/vmbus_drv.c
AgeCommit message (Collapse)AuthorFilesLines
2011-10-11Staging: hv: move hyperv code out of staging directoryGreg Kroah-Hartman1-772/+0
After many years wandering the desert, it is finally time for the Microsoft HyperV code to move out of the staging directory. Or at least the core hyperv bus code, and the utility driver, the rest still have some review to get through by the various subsystem maintainers. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
2011-09-16Staging: hv: vmbus: Do not allocate struct hv_device_info on the stackK. Y. Srinivasan1-65/+69
struct hv_device_info is about 101 bytes in size. Do not allocate this structure on the stack. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-16Staging: hv: vmbus: Cleanup vmbus_remove()K. Y. Srinivasan1-14/+6
vmbus_remove() cannot fail; clean it up accordingly. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-16Staging: hv: vmbus: Change the signature of struct hv_driver probe functionK. Y. Srinivasan1-1/+3
In preparation to leveraging the driver_data field in struct hv_vmbus_device_id, change the signature of struct hv_driver probe function. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-16Staging: hv: vmbus: Introduce a utility function to match hv_vmbus_device_idK. Y. Srinivasan1-5/+18
Introduce a utility function to match hv_vmbus_device_id. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-10Staging: hv: vmbus: Rename vmbus_child_device_unregisterK. Y. Srinivasan1-2/+2
The vmbus devices are NOT child devices; rename vmbus_child_device_unregister to reflect this. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-10Staging: hv: vmbus: Rename vmbus_child_device_registerK. Y. Srinivasan1-2/+2
The vmbus devices are NOT child devices; rename vmbus_child_device_register to reflect this. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-10Staging: hv: vmbus: Rename vmbus_child_device_createK. Y. Srinivasan1-2/+2
The vmbus devices are NOT child devices; rename vmbus_child_device_create to reflect this. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-06Staging: hv: vmbus: Show the modalias in /sys/bus/vmbus/devices/*/Olaf Hering1-5/+16
Show a modalias file in /sys/bus/vmbus/devices/*/ Add a helper function to print the same content in modalias and uevent. Signed-off-by: Olaf Hering <olaf@aepfle.de> Acked-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-06Staging: hv: vmbus: Check for events before messagesK. Y. Srinivasan1-8/+14
The Windows team has informed us that on Windows guests on Hyper-V, they check for events before messages. They also recommended that we do the same. This patch addresses this. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-09-06Staging: hv: vmbus: Fix a bug in error handling in vmbus_bus_init()K. Y. Srinivasan1-11/+15
Fix a bug in error handling in vmbus_bus_init(). Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-29Staging: hv: vmbus: Get rid of some dated/redundant commentsK. Y. Srinivasan1-10/+1
Get rid of some dated/redundant comments in vmbus_drv.c Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-29Staging: hv: vmbus: Fixup indentation in vmbus_acpi_add()K. Y. Srinivasan1-3/+2
Fixup indentation in vmbus_acpi_add(). Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-29Staging: hv: vmbus: Get rid of vmbus_on_isr() by inlining the codeK. Y. Srinivasan1-29/+12
Get rid of vmbus_on_isr() by inlining the code. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-29Staging: hv: Fix a bug in vmbus_match()K. Y. Srinivasan1-1/+1
The recent checkin that add a private pointer to hv_vmbus_device_id introduced this bug in vmbus_match; fix it. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-26Staging: hv: vmbus: Get rid of some unnecessary commentsK. Y. Srinivasan1-2/+0
Get rid of some unnecessary comments. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-26Staging: hv: fix up driver registering messGreg Kroah-Hartman1-22/+21
Individual drivers should never be touching the 'struct device' field, so if that is a requirement to pass to the vmbus core, you know something is wrong. This patch fixes that all up, and resolves the problem where the module reference counting was not happening properly for the individual drivers as well. Overall, it reduces the lines of code the individual drivers have to have, which tells you that this is the correct thing to do. Also, somehow the _GPL marking for the functions got removed on an older patch. As the name of the function was changing, properly change the _GPL marking as well at the same time. Cc: K. Y. Srinivasan <kys@microsoft.com> Cc: Haiyang Zhang <haiyangz@microsoft.com> Cc: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-26Staging: hv: vmbus: Get rid of an unnecessary include line in vmbus_drv.cK. Y. Srinivasan1-1/+0
Get rid of an unnecessary include line in vmbus_drv.c. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-26Staging: hv: vmbus: Support the notion of id tables in vmbus_match()K. Y. Srinivasan1-5/+15
Introduce code to handle driver specific id tables to the vmbus core (vmbus_match). This would allow us to handle more than one device type with a given driver. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-26Staging: hv: vmbus: Cleanup vmbus_uevent() codeK. Y. Srinivasan1-46/+10
Now generate appropriate uevent based on the modalias string. As part of this, cleanup the existing uevent code. [gregkh - fixed code to handle driver_data portion of struct hv_vmbus_device_id] Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-26Staging: hv: vmbus: Cleanup vmbus_match()K. Y. Srinivasan1-2/+1
Use the preferred mechanism to compare guids in vmbus_match(). Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-25Staging: hv: Replace struct hv_guid with the uuid type already defined in LinuxK. Y. Srinivasan1-71/+71
Replace struct hv_guid with the uuid type already defined in Linux. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-25Staging: hv: vmbus: VMBUS is an ACPI enumerated device, get rid of the PCI ↵K. Y. Srinivasan1-13/+0
signature VMBUS is an ACPI enumerated device, get rid of the PCI signature. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-24Staging: hv: vmbus: Don't wait indefinitely for IRQ resoucesK. Y. Srinivasan1-5/+14
If an attempt is made to load the vmbus driver on a non-Hyper-V platform, the load operation will hang since we currently wait indefinitely to retrieve the IRQ information. This is done in the context of an acpi callback context (which will obviously not happen when this driver is loaded on a non-Hyper-V platform). This patch fixes the problem. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05Staging: hv: vmbus: Properly handle the error in hv_acpi_init()K. Y. Srinivasan1-1/+4
Properly handle the error in hv_acpi_init(). Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Cleanup error handling in vmbus_bus_init()K. Y. Srinivasan1-10/+6
Cleanup error handling in vmbus_bus_init(). Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Cleanup some error codes in vmbus_drv.cK. Y. Srinivasan1-2/+2
Cleanup some error codes in vmbus_drv.c Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Rename local variables in vmbus_drv.cK. Y. Srinivasan1-6/+6
Rename local variables in vmbus_drv.c. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Fix a memory barrier call in vmbus_drv.cK. Y. Srinivasan1-1/+1
Use the correct memory barrier call in vmbus_drv.c Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Get rid of a dated comment in vmbus_drv.cK. Y. Srinivasan1-1/+0
Get rid of a dated comment in vmbus_drv.c. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Add the DSDT _HID name as wellK. Y. Srinivasan1-0/+1
Add the DSDT _HID name as well, in addition to the _DDN name. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Get rid of vmbus_acpi_exit() by inlining the codeK. Y. Srinivasan1-9/+1
Get rid of vmbus_acpi_exit() by inlining the code. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Get rid of vmbus_acpi_init() by inlining the codeK. Y. Srinivasan1-13/+2
Staging: hv: vmbus: Get rid of vmbus_acpi_init() by inlining the code. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Make vmbus an acpi bus driverK. Y. Srinivasan1-47/+9
Now, make the vmbus driver an ACPI bus driver. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Use the DSDT specified irq for vmbusK. Y. Srinivasan1-12/+3
DSDT specifies the irq value for the vmbus driver; use it unconditionally. This is an exclusive interrupt line dedicated for the vmbus driver. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: Change the signature of vmbus_bus_init()K. Y. Srinivasan1-7/+7
In preparation for making the vmbus driver an ACPI bus driver, change the signature of vmbus_bus_init() to accept the irq value. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-08Staging: hv: vmbus: In vmbus_child_driver_unregister() don't set the bus ↵K. Y. Srinivasan1-1/+0
field to NULL As part of conforming to the Linux Driver Model, do not set the bus field to NULL when the driver un-registers. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-18Staging: hv: vmbus_drv: Get rid of util synchronixation based on channel ↵K. Y. Srinivasan1-1/+0
counting Now that we have dealt with this issue differently, get rid of the old mechanism. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-17Staging: hv: vmbus_drv: Move the contents of vmbus_private.h to vmbus_hyperv.hK. Y. Srinivasan1-1/+0
Move the contents of vmbus_private.h to vmbus_hyperv.h. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-17Staging: hv: vmbus_drv: Include the contents of hv_api.h in hyperv_vmbus.hK. Y. Srinivasan1-1/+0
Include the contents of hv_api.h in hyperv_vmbus.h. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-17Staging: hv: vmbus_drv: Create a common header file to build the vmbus driverK. Y. Srinivasan1-0/+1
Create a common header file to build the vmbus driver. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-17Staging: hv: Move the contents of vmbus.h to hyperv.hK. Y. Srinivasan1-1/+0
Move the contents of vmbus.h to hyperv.h. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-17Staging: hv: Move the contents of logging.h to hyperv.hK. Y. Srinivasan1-1/+0
Move the contents of logging.h to hyperv.h. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-17Staging: hv: Move the contents of channel.h to hyperv.hK. Y. Srinivasan1-1/+0
Move the contents of channel.h to hyperv.h. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-17Staging: hv: Move the contents of the file version_info.h to hyperv.hK. Y. Srinivasan1-1/+0
Move the contents of the file version_info.h to hyperv.h. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-17Staging: hv: Include the newly created header file in all of the relevant ↵K. Y. Srinivasan1-0/+2
hyperv files Include the newly created header file in all of the relevant hyperv files. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-04Staging: hv: VMBUS is a acpi enumerated device; get irq value from biosK. Y. Srinivasan1-1/+100
On some Windows hosts, the Linux PCI sub-system is not allocating irq resources to the vmbus driver. It looks like VMBUS is an ACPI enumerated device. Retrieve the irq information from DSDT. Currently we use this bios specified irq, if the PCI sub-system fails to allocate the irq. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-04Staging: hv: Use the shutdown() function in struct hv_driverK. Y. Srinivasan1-3/+3
Use the newly introduced shutdown() function. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-04Staging: hv: Use the remove() function in struct hv_driverK. Y. Srinivasan1-6/+3
Use the newly introduced remove() function in struct hv_driver. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-04Staging: hv: Use the probe function in struct hv_driverK. Y. Srinivasan1-3/+3
Use the newly introduced probe function. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>