xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] xen/pci: make bus notifier handler return sane values
@ 2011-08-17  8:32 Jan Beulich
  2011-08-17 14:57 ` Konrad Rzeszutek Wilk
  2011-08-22 16:20 ` Konrad Rzeszutek Wilk
  0 siblings, 2 replies; 11+ messages in thread
From: Jan Beulich @ 2011-08-17  8:32 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: Jeremy Fitzhardinge, xen-devel@lists.xensource.com

[-- Attachment #1: Type: text/plain, Size: 1272 bytes --]

Notifier functions are expected to return NOTIFY_* codes, not -E...
ones. In particular, since the respective hypercalls failing is not
fatal to the operation of the Dom0 kernel, it must be avoided to
return negative values here as those would make it appear as if
NOTIFY_STOP_MASK wa set, suppressing further notification calls to
other interested parties (which is also why we don't want to use
notifier_from_errno() here).

Signed-off-by: Jan Beulich <jbeulich@novell.com>

---
 drivers/xen/pci.c |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

--- 3.1-rc2/drivers/xen/pci.c
+++ 3.1-rc2-xen-pci-bus-notifier/drivers/xen/pci.c
@@ -86,23 +86,22 @@ static int xen_pci_notifier(struct notif
 			    unsigned long action, void *data)
 {
 	struct device *dev = data;
-	int r = 0;
 
 	switch (action) {
 	case BUS_NOTIFY_ADD_DEVICE:
-		r = xen_add_device(dev);
+		xen_add_device(dev);
 		break;
 	case BUS_NOTIFY_DEL_DEVICE:
-		r = xen_remove_device(dev);
+		xen_remove_device(dev);
 		break;
 	default:
-		break;
+		return NOTIFY_DONE;
 	}
 
-	return r;
+	return NOTIFY_OK;
 }
 
-struct notifier_block device_nb = {
+static struct notifier_block device_nb = {
 	.notifier_call = xen_pci_notifier,
 };
 




[-- Attachment #2: linux-3.1-rc2-xen-pci-bus-notifier.patch --]
[-- Type: text/plain, Size: 1266 bytes --]

Notifier functions are expected to return NOTIFY_* codes, not -E...
ones. In particular, since the respective hypercalls failing is not
fatal to the operation of the Dom0 kernel, it must be avoided to
return negative values here as those would make it appear as if
NOTIFY_STOP_MASK wa set, suppressing further notification calls to
other interested parties (which is also why we don't want to use
notifier_from_errno() here).

Signed-off-by: Jan Beulich <jbeulich@novell.com>

---
 drivers/xen/pci.c |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

--- 3.1-rc2/drivers/xen/pci.c
+++ 3.1-rc2-xen-pci-bus-notifier/drivers/xen/pci.c
@@ -86,23 +86,22 @@ static int xen_pci_notifier(struct notif
 			    unsigned long action, void *data)
 {
 	struct device *dev = data;
-	int r = 0;
 
 	switch (action) {
 	case BUS_NOTIFY_ADD_DEVICE:
-		r = xen_add_device(dev);
+		xen_add_device(dev);
 		break;
 	case BUS_NOTIFY_DEL_DEVICE:
-		r = xen_remove_device(dev);
+		xen_remove_device(dev);
 		break;
 	default:
-		break;
+		return NOTIFY_DONE;
 	}
 
-	return r;
+	return NOTIFY_OK;
 }
 
-struct notifier_block device_nb = {
+static struct notifier_block device_nb = {
 	.notifier_call = xen_pci_notifier,
 };
 

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-08-25 10:15 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-17  8:32 [PATCH] xen/pci: make bus notifier handler return sane values Jan Beulich
2011-08-17 14:57 ` Konrad Rzeszutek Wilk
2011-08-17 15:18   ` Jan Beulich
2011-08-17 15:31     ` Konrad Rzeszutek Wilk
2011-08-17 15:37       ` Jan Beulich
2011-08-22 16:20 ` Konrad Rzeszutek Wilk
2011-08-23  8:19   ` Jan Beulich
2011-08-24 20:42     ` Konrad Rzeszutek Wilk
2011-08-25  9:14       ` George Dunlap
2011-08-25 10:07         ` Jan Beulich
2011-08-25 10:15           ` George Dunlap

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).