Displaying 20 results from an estimated 32 matches for "vmbus_isr".
2011 Aug 15
9
[PATCH 0/8] Staging: hv: vmbus: Driver cleanup
Further cleanup of the vmbus driver:
1) Cleanup the interrupt handler by inlining some code.
2) Ensure message handling is performed on the same CPU that
takes the vmbus interrupt.
3) Check for events before messages (from the host).
4) Disable auto eoi for the vmbus interrupt since Linux will eoi the
interrupt anyway.
5) Some general cleanup.
Regards,
K. Y
2011 Aug 15
9
[PATCH 0/8] Staging: hv: vmbus: Driver cleanup
Further cleanup of the vmbus driver:
1) Cleanup the interrupt handler by inlining some code.
2) Ensure message handling is performed on the same CPU that
takes the vmbus interrupt.
3) Check for events before messages (from the host).
4) Disable auto eoi for the vmbus interrupt since Linux will eoi the
interrupt anyway.
5) Some general cleanup.
Regards,
K. Y
2011 Feb 15
3
[PATCH ]:Staging: hv: Allocate the vmbus irq dynamically
...x;
int ret;
- unsigned int vector;
+ unsigned int vector, prev_irq = ~0;
DPRINT_INFO(VMBUS, "+++++++ HV Driver version = %s +++++++",
HV_DRV_VERSION);
@@ -518,19 +534,23 @@ static int vmbus_bus_init(void)
}
/* Get the interrupt resource */
- ret = request_irq(vmbus_irq, vmbus_isr, IRQF_SAMPLE_RANDOM,
- driver->name, NULL);
-
- if (ret != 0) {
- DPRINT_ERR(VMBUS_DRV, "ERROR - Unable to request IRQ %d",
- vmbus_irq);
-
+get_irq_again:
+ vmbus_irq = vmbus_get_irq();
+ if ((vmbus_irq < 0) || (prev_irq == vmbus_irq)) {
+ printk(KERN_WARNING "VMBUS...
2011 Feb 15
3
[PATCH ]:Staging: hv: Allocate the vmbus irq dynamically
...x;
int ret;
- unsigned int vector;
+ unsigned int vector, prev_irq = ~0;
DPRINT_INFO(VMBUS, "+++++++ HV Driver version = %s +++++++",
HV_DRV_VERSION);
@@ -518,19 +534,23 @@ static int vmbus_bus_init(void)
}
/* Get the interrupt resource */
- ret = request_irq(vmbus_irq, vmbus_isr, IRQF_SAMPLE_RANDOM,
- driver->name, NULL);
-
- if (ret != 0) {
- DPRINT_ERR(VMBUS_DRV, "ERROR - Unable to request IRQ %d",
- vmbus_irq);
-
+get_irq_again:
+ vmbus_irq = vmbus_get_irq();
+ if ((vmbus_irq < 0) || (prev_irq == vmbus_irq)) {
+ printk(KERN_WARNING "VMBUS...
2011 Mar 15
16
[PATCH 00/12] Staging: hv: Cleanup vmbus driver - Phase II
This patch-set fixes the following issues in the vmbus driver (vmbus_drv.c):
Make vmbus driver a platform pci device and cleanup
root device management and irq allocation
(patches 1/12 through 3/12):
1) Make vmbus driver a platform pci driver.
2) Cleanup root device management.
3) Leverage the pci model for allocating irq.
General cleanup of vmbus driver (patches 4/12 though 12/12):
1)
2011 Mar 15
16
[PATCH 00/12] Staging: hv: Cleanup vmbus driver - Phase II
This patch-set fixes the following issues in the vmbus driver (vmbus_drv.c):
Make vmbus driver a platform pci device and cleanup
root device management and irq allocation
(patches 1/12 through 3/12):
1) Make vmbus driver a platform pci driver.
2) Cleanup root device management.
3) Leverage the pci model for allocating irq.
General cleanup of vmbus driver (patches 4/12 though 12/12):
1)
2011 Feb 15
4
[PATCH]: Staging: hv: Allocate the vmbus irq dynamically
...ret;
unsigned int vector;
+ bool irq_assigned = false;
DPRINT_INFO(VMBUS, "+++++++ HV Driver version = %s +++++++",
HV_DRV_VERSION);
@@ -517,20 +536,42 @@ static int vmbus_bus_init(void)
goto cleanup;
}
- /* Get the interrupt resource */
- ret = request_irq(vmbus_irq, vmbus_isr, IRQF_SAMPLE_RANDOM,
- driver->name, NULL);
-
- if (ret != 0) {
- DPRINT_ERR(VMBUS_DRV, "ERROR - Unable to request IRQ %d",
- vmbus_irq);
+ /*
+ * Get an unused interrupt line and register our handler.
+ * Since there is a window between getting an unused
+ * interrupt lin...
2011 Feb 15
4
[PATCH]: Staging: hv: Allocate the vmbus irq dynamically
...ret;
unsigned int vector;
+ bool irq_assigned = false;
DPRINT_INFO(VMBUS, "+++++++ HV Driver version = %s +++++++",
HV_DRV_VERSION);
@@ -517,20 +536,42 @@ static int vmbus_bus_init(void)
goto cleanup;
}
- /* Get the interrupt resource */
- ret = request_irq(vmbus_irq, vmbus_isr, IRQF_SAMPLE_RANDOM,
- driver->name, NULL);
-
- if (ret != 0) {
- DPRINT_ERR(VMBUS_DRV, "ERROR - Unable to request IRQ %d",
- vmbus_irq);
+ /*
+ * Get an unused interrupt line and register our handler.
+ * Since there is a window between getting an unused
+ * interrupt lin...
2011 Mar 10
1
[PATCH 13/21] [PATCH 13/21] Staging: hv: Rename vmbus_driver_context structure
...obj->device.bus = &vmbus_drv.bus; /* device->dev.bus; */
+ child_device_obj->device.bus = &hv_bus.bus; /* device->dev.bus; */
child_device_obj->device.parent = root_dev;
child_device_obj->device.release = vmbus_device_release;
@@ -877,10 +873,10 @@ static irqreturn_t vmbus_isr(int irq, void *dev_id)
/* Schedules a dpc if necessary */
if (ret > 0) {
if (test_bit(0, (unsigned long *)&ret))
- tasklet_schedule(&vmbus_drv.msg_dpc);
+ tasklet_schedule(&hv_bus.msg_dpc);
if (test_bit(1, (unsigned long *)&ret))
- tasklet_schedule(&vmbus_dr...
2011 Mar 10
1
[PATCH 13/21] [PATCH 13/21] Staging: hv: Rename vmbus_driver_context structure
...obj->device.bus = &vmbus_drv.bus; /* device->dev.bus; */
+ child_device_obj->device.bus = &hv_bus.bus; /* device->dev.bus; */
child_device_obj->device.parent = root_dev;
child_device_obj->device.release = vmbus_device_release;
@@ -877,10 +873,10 @@ static irqreturn_t vmbus_isr(int irq, void *dev_id)
/* Schedules a dpc if necessary */
if (ret > 0) {
if (test_bit(0, (unsigned long *)&ret))
- tasklet_schedule(&vmbus_drv.msg_dpc);
+ tasklet_schedule(&hv_bus.msg_dpc);
if (test_bit(1, (unsigned long *)&ret))
- tasklet_schedule(&vmbus_dr...
2011 Mar 10
2
[PATCH 11/21] Staging: hv: Make vmbus driver a platform pci driver
...100644
--- a/drivers/staging/hv/vmbus_drv.c
+++ b/drivers/staging/hv/vmbus_drv.c
@@ -43,6 +43,8 @@
static struct device *root_dev; /* Root device */
+struct pci_dev *hv_pci_dev;
+
/* Main vmbus driver data structure */
struct vmbus_driver_context {
@@ -887,36 +889,24 @@ static irqreturn_t vmbus_isr(int irq, void *dev_id)
}
}
-static struct dmi_system_id __initdata microsoft_hv_dmi_table[] = {
- {
- .ident = "Hyper-V",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
- DMI_MATCH(DMI_PRODUCT_NAME, "Virtual Machine"),
- DMI_MATCH(DMI...
2011 Mar 10
2
[PATCH 11/21] Staging: hv: Make vmbus driver a platform pci driver
...100644
--- a/drivers/staging/hv/vmbus_drv.c
+++ b/drivers/staging/hv/vmbus_drv.c
@@ -43,6 +43,8 @@
static struct device *root_dev; /* Root device */
+struct pci_dev *hv_pci_dev;
+
/* Main vmbus driver data structure */
struct vmbus_driver_context {
@@ -887,36 +889,24 @@ static irqreturn_t vmbus_isr(int irq, void *dev_id)
}
}
-static struct dmi_system_id __initdata microsoft_hv_dmi_table[] = {
- {
- .ident = "Hyper-V",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
- DMI_MATCH(DMI_PRODUCT_NAME, "Virtual Machine"),
- DMI_MATCH(DMI...
2011 Aug 27
46
[PATCH 0000/0046] Staging: hv: Driver cleanup
Further cleanup of the hv drivers.
1) Cleanup reference counting.
2) Handle all block devices using the storvsc driver. I have modified
the implementation here based on Christoph's feedback on my earlier
implementation.
3) Fix bugs.
4) Accomodate some host side scsi emulation bugs.
5) In case of scsi errors off-line the device.
This patch-set further reduces the size of
2011 Aug 27
46
[PATCH 0000/0046] Staging: hv: Driver cleanup
Further cleanup of the hv drivers.
1) Cleanup reference counting.
2) Handle all block devices using the storvsc driver. I have modified
the implementation here based on Christoph's feedback on my earlier
implementation.
3) Fix bugs.
4) Accomodate some host side scsi emulation bugs.
5) In case of scsi errors off-line the device.
This patch-set further reduces the size of
2011 Jun 06
51
[PATCH 00/49] Staging: hv: Driver cleanup
Further cleanup of the hv drivers:
1) Continue to cleanup our drivers to conform to the Linux Driver
Model.
2) Fix some long standing bugs with regards to unloading and
reloading the drivers - block, net and stor.
3) VMBUS is an ACPI enumerated device; make VMBUS an ACPI bus driver.
4) Get rid of channel polling code; instead the channel receive paths
will be purely interrupt
2011 Jun 06
51
[PATCH 00/49] Staging: hv: Driver cleanup
Further cleanup of the hv drivers:
1) Continue to cleanup our drivers to conform to the Linux Driver
Model.
2) Fix some long standing bugs with regards to unloading and
reloading the drivers - block, net and stor.
3) VMBUS is an ACPI enumerated device; make VMBUS an ACPI bus driver.
4) Get rid of channel polling code; instead the channel receive paths
will be purely interrupt
2011 Mar 10
1
[PATCH 10/21] Staging: hv: Cleanup root device handling
...dpc;
struct tasklet_struct event_dpc;
- /* The bus root device */
- struct hv_device device_ctx;
};
static int vmbus_match(struct device *device, struct device_driver *driver);
@@ -60,7 +61,6 @@ static int vmbus_uevent(struct device *device, struct kobj_uevent_env *env);
static irqreturn_t vmbus_isr(int irq, void *dev_id);
static void vmbus_device_release(struct device *device);
-static void vmbus_bus_release(struct device *device);
static ssize_t vmbus_show_device_attr(struct device *dev,
struct device_attribute *dev_attr,
@@ -117,54 +117,6 @@ static struct vmbus_driver_conte...
2011 Mar 10
1
[PATCH 10/21] Staging: hv: Cleanup root device handling
...dpc;
struct tasklet_struct event_dpc;
- /* The bus root device */
- struct hv_device device_ctx;
};
static int vmbus_match(struct device *device, struct device_driver *driver);
@@ -60,7 +61,6 @@ static int vmbus_uevent(struct device *device, struct kobj_uevent_env *env);
static irqreturn_t vmbus_isr(int irq, void *dev_id);
static void vmbus_device_release(struct device *device);
-static void vmbus_bus_release(struct device *device);
static ssize_t vmbus_show_device_attr(struct device *dev,
struct device_attribute *dev_attr,
@@ -117,54 +117,6 @@ static struct vmbus_driver_conte...
2017 Feb 01
15
[PATCH 00/14] hyperv: vmbus related patches
This is a rebase/resend of earlier patches. I skipped the pure
cosmetic patches for now. Mostly this is consolidation earlier
changes, removing dead code etc. The important part is the
change for allowing a vmbus channel to get callback directly
in interrupt mode; this is necessary for NAPI support.
Stephen Hemminger (14):
vmbus: use kernel bitops for traversing interrupt mask
vmbus: drop
2017 Feb 01
15
[PATCH 00/14] hyperv: vmbus related patches
This is a rebase/resend of earlier patches. I skipped the pure
cosmetic patches for now. Mostly this is consolidation earlier
changes, removing dead code etc. The important part is the
change for allowing a vmbus channel to get callback directly
in interrupt mode; this is necessary for NAPI support.
Stephen Hemminger (14):
vmbus: use kernel bitops for traversing interrupt mask
vmbus: drop