From: "K. Y. Srinivasan" <kys@microsoft.com>
To: kys@microsoft.com, gregkh@suse.de, linux-kernel@vger.kernel.org,
devel@linuxdriverproject.org, virtualization@lists.osdl.org
Cc: Haiyang Zhang <haiyangz@microsoft.com>,
Mike Sterling <mike.sterling@microsoft.com>,
Abhishek Kane <v-abkane@microsoft.com>,
Hank Janssen <hjanssen@microsoft.com>
Subject: [PATCH 12/21] Staging: hv: Cleanup irq management
Date: Thu, 10 Mar 2011 14:08:53 -0800 [thread overview]
Message-ID: <1299794933-1259-1-git-send-email-kys@microsoft.com> (raw)
In-Reply-To: <[PATCH 00/21] Staging: hv: Cleanup vmbus driver>
Now that vmbus_driver is a platform pci driver,
cleanup the irq allocation mess by using the standard
irq allocation mechanisms.
Note that this patch generates an error when the checkpatch
script is run because of the IRQF_SAMPLE_RANDOM flag used in
request_irq() function. This interrupt is the only
external event this VM will get and consequently if this
flag (IRQF_SAMPLE_RANDOM) is not specified, experimentally
we have shown that the entropy in the VM will very very low.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Mike Sterling <mike.sterling@microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
---
drivers/staging/hv/vmbus_drv.c | 30 ++++++++++++++----------------
1 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c
index e4855ac..4e45016 100644
--- a/drivers/staging/hv/vmbus_drv.c
+++ b/drivers/staging/hv/vmbus_drv.c
@@ -17,6 +17,8 @@
* Authors:
* Haiyang Zhang <haiyangz@microsoft.com>
* Hank Janssen <hjanssen@microsoft.com>
+ *
+ * 3/9/2011: K. Y. Srinivasan - Significant restructuring and cleanup
*/
#include <linux/init.h>
#include <linux/err.h>
@@ -37,10 +39,6 @@
#include "vmbus_private.h"
-/* FIXME! We need to do this dynamically for PIC and APIC system */
-#define VMBUS_IRQ 0x5
-#define VMBUS_IRQ_VECTOR IRQ5_VECTOR
-
static struct device *root_dev; /* Root device */
struct pci_dev *hv_pci_dev;
@@ -74,7 +72,6 @@ EXPORT_SYMBOL(vmbus_loglevel);
/* (ALL_MODULES << 16 | DEBUG_LVL_ENTEREXIT); */
/* (((VMBUS | VMBUS_DRV)<<16) | DEBUG_LVL_ENTEREXIT); */
-static int vmbus_irq = VMBUS_IRQ;
/* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */
static struct device_attribute vmbus_device_attrs[] = {
@@ -375,7 +372,7 @@ static ssize_t vmbus_show_device_attr(struct device *dev,
* - setup the vmbus root device
* - retrieve the channel offers
*/
-static int vmbus_bus_init(void)
+static int vmbus_bus_init(struct pci_dev *pdev)
{
struct vmbus_driver_context *vmbus_drv_ctx = &vmbus_drv;
int ret;
@@ -418,21 +415,23 @@ static int vmbus_bus_init(void)
}
/* Get the interrupt resource */
- ret = request_irq(vmbus_irq, vmbus_isr, IRQF_SAMPLE_RANDOM,
- driver_name, NULL);
+ ret = request_irq(pdev->irq, vmbus_isr,
+ IRQF_SHARED | IRQF_SAMPLE_RANDOM,
+ driver_name, pdev);
if (ret != 0) {
DPRINT_ERR(VMBUS_DRV, "ERROR - Unable to request IRQ %d",
- vmbus_irq);
+ pdev->irq);
bus_unregister(&vmbus_drv_ctx->bus);
ret = -1;
goto cleanup;
}
- vector = VMBUS_IRQ_VECTOR;
- DPRINT_INFO(VMBUS_DRV, "irq 0x%x vector 0x%x", vmbus_irq, vector);
+ vector = IRQ0_VECTOR + pdev->irq;
+ DPRINT_INFO(VMBUS_DRV, "irq 0x%x vector 0x%x", pdev->irq,
+ IRQ0_VECTOR + pdev->irq);
/* Register the root device */
root_dev = root_device_register(driver_name);
@@ -441,7 +440,7 @@ static int vmbus_bus_init(void)
DPRINT_ERR(VMBUS_DRV,
"ERROR - Unable to register vmbus root device");
- free_irq(vmbus_irq, NULL);
+ free_irq(pdev->irq, pdev);
bus_unregister(&vmbus_drv_ctx->bus);
ret = PTR_ERR(root_dev);
@@ -456,7 +455,7 @@ static int vmbus_bus_init(void)
ret = vmbus_connect();
if (ret) {
root_device_unregister(root_dev);
- free_irq(vmbus_irq, NULL);
+ free_irq(pdev->irq, pdev);
bus_unregister(&vmbus_drv_ctx->bus);
goto cleanup;
}
@@ -490,7 +489,7 @@ static void vmbus_bus_exit(void)
bus_unregister(&vmbus_drv_ctx->bus);
- free_irq(vmbus_irq, NULL);
+ free_irq(hv_pci_dev->irq, hv_pci_dev);
tasklet_kill(&vmbus_drv_ctx->msg_dpc);
tasklet_kill(&vmbus_drv_ctx->event_dpc);
@@ -902,7 +901,7 @@ static int __devinit hv_pci_probe(struct pci_dev *pdev,
if (err)
return err;
- err = vmbus_bus_init();
+ err = vmbus_bus_init(pdev);
if (err)
pci_disable_device(pdev);
@@ -942,7 +941,6 @@ static void __exit hv_pci_exit(void)
MODULE_LICENSE("GPL");
MODULE_VERSION(HV_DRV_VERSION);
-module_param(vmbus_irq, int, S_IRUGO);
module_param(vmbus_loglevel, int, S_IRUGO);
module_init(hv_pci_init);
--
1.5.5.6
next prev parent reply other threads:[~2011-03-10 21:59 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <[PATCH 00/21] Staging: hv: Cleanup vmbus driver>
2011-03-10 22:03 ` [PATCH 01/21] Staging: hv: Simplify root device management K. Y. Srinivasan
2011-03-10 22:04 ` [PATCH 02/21] Staging: hv: Change the signature for vmbus_cleanup() K. Y. Srinivasan
2011-03-10 22:04 ` [PATCH 03/21] Staging: hv: Get rid of the function vmbus_msg_dpc() K. Y. Srinivasan
2011-03-10 22:05 ` [PATCH 04/21] Staging: hv: Eliminate vmbus_event_dpc() K. Y. Srinivasan
2011-03-10 22:06 ` [PATCH 05/21] Staging: hv: Change the signature for vmbus_on_isr() K. Y. Srinivasan
2011-03-10 22:06 ` [PATCH 06/21] Staging: hv: Get rid of vmbus_dev_rm() function K. Y. Srinivasan
2011-03-10 22:06 ` [PATCH 07/21] Staging: hv: Get rid of vmbus_cleanup() function K. Y. Srinivasan
2011-03-10 22:07 ` [PATCH 08/21] Staging: hv: Change the signature for vmbus_child_device_register() K. Y. Srinivasan
2011-03-10 22:07 ` [PATCH 09/21] Staging: hv: Get rid of vmbus_child_dev_add() K. Y. Srinivasan
2011-03-10 22:08 ` [PATCH 10/21] Staging: hv: Cleanup root device handling K. Y. Srinivasan
2011-03-14 19:33 ` Greg KH
2011-03-14 19:54 ` KY Srinivasan
2011-03-14 19:58 ` Greg KH
2011-03-14 20:13 ` KY Srinivasan
2011-03-10 22:08 ` [PATCH 11/21] Staging: hv: Make vmbus driver a platform pci driver K. Y. Srinivasan
2011-03-10 22:20 ` Greg KH
2011-03-10 22:28 ` KY Srinivasan
2011-03-10 22:32 ` Greg KH
2011-03-10 22:36 ` KY Srinivasan
2011-03-12 23:23 ` KY Srinivasan
2011-03-14 3:24 ` Greg KH
2011-03-14 12:43 ` KY Srinivasan
2011-03-14 19:34 ` Greg KH
2011-03-10 22:08 ` K. Y. Srinivasan [this message]
2011-03-10 22:46 ` [PATCH 12/21] Staging: hv: Cleanup irq management Thomas Gleixner
2011-03-10 22:54 ` Hank Janssen
2011-03-11 2:09 ` KY Srinivasan
2011-03-10 22:12 ` [PATCH 13/21] [PATCH 13/21] Staging: hv: Rename vmbus_driver_context structure K. Y. Srinivasan
2011-03-10 22:49 ` Thomas Gleixner
2011-03-11 3:17 ` KY Srinivasan
2011-03-10 22:12 ` [PATCH 14/21] Get rid of the forward declaration for vmbus_uevent K. Y. Srinivasan
2011-03-10 22:13 ` [PATCH 15/21] Staging: hv: Get rid of the forward declaration for vmbus_match K. Y. Srinivasan
2011-03-10 22:14 ` [PATCH 16/21] Staging: hv: Get rid of the forward declaration for vmbus_probe K. Y. Srinivasan
2011-03-10 22:14 ` [PATCH 17/21] Staging: hv: Get rid of the forward declaration for vmbus_remove K. Y. Srinivasan
2011-03-10 22:15 ` [PATCH 18/21] Staging: hv: Get rid of the forward declaration for vmbus_shutdown K. Y. Srinivasan
2011-03-10 22:15 ` [PATCH 19/21] Staging: hv: Get rid of the forward declaration for vmbus_device_release K. Y. Srinivasan
2011-03-10 22:15 ` [PATCH 20/21] Staging: hv: Get rid of the forward declaration for vmbus_isr K. Y. Srinivasan
2011-03-10 22:16 ` [PATCH 21/21] Staging: hv: Get rid of the forward declaration for vmbus_show_device_attr K. Y. Srinivasan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1299794933-1259-1-git-send-email-kys@microsoft.com \
--to=kys@microsoft.com \
--cc=devel@linuxdriverproject.org \
--cc=gregkh@suse.de \
--cc=haiyangz@microsoft.com \
--cc=hjanssen@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mike.sterling@microsoft.com \
--cc=v-abkane@microsoft.com \
--cc=virtualization@lists.osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®