Re: [Xen-devel] Re: [PATCH] Modpost section mismatch fix

From: Raghavendra D Prabhu
Date: Thu Jul 07 2011 - 15:49:06 EST


* On Thu, Jul 07, 2011 at 12:24:54PM -0400, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> wrote:
Tested it. Works now.

Ok, Stuck Tested-by on the patch. Hopefully Linus hasn't pulled it yet.
Ok.

Reviewed-by: Raghavendra Prabhu <rprabhu@xxxxxxxxxxx>

Also,
The condition for acpi_gsi_to_irq can be removed since it always returns zero.

The function might in the future return something that is non-zero
and we should guard for it. Also you make 'irq' be unsigned which is not
good as the IRQ 0 is a valid value - and with making it unsigned if it is
set to -1 (the -1 is the invalid IRQ value) the check for 'irq != gsi'
will be true and and we will pass in -1 casted to unsigned. That is a
large value and not the right thing we want to pass to xen_register_gsi.

My rationale for the unsigned part was that acpi_gsi_to_irq always
assigns a positive value (>= 0) to the irq passed (as unsigned
argument). But even otherwise that shouldn't make much of difference I guess.

Also,
I had sent another change (oneline) for the file
arch/x86/xen/platform-pci-unplug.c for check_platform_magic, looks like that has not gone into
the pull request for Linus.


============================================
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index f567965..3faa55b 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -405,7 +405,7 @@ static __init void xen_setup_acpi_sci(void)
int rc;
int trigger, polarity;
int gsi = acpi_sci_override_gsi;
- int irq = -1;
+ unsigned int irq = 0u;
int gsi_override = -1;

if (!gsi)
@@ -435,11 +435,10 @@ static __init void xen_setup_acpi_sci(void)
* setup as we had setup IRQ 20 for it).
*/
/* Check whether the GSI != IRQ */
- if (acpi_gsi_to_irq(gsi, &irq) == 0) {
- if (irq >= 0 && irq != gsi)
- /* Bugger, we MUST have that IRQ. */
- gsi_override = irq;
- }
+ acpi_gsi_to_irq(gsi, &irq);
+ if (irq != gsi)
+ /* Bugger, we MUST have that IRQ. */
+ gsi_override = irq;

gsi = xen_register_gsi(gsi, gsi_override, trigger, polarity);
printk(KERN_INFO "xen: acpi sci %d\n", gsi);


--------------------------
Raghavendra Prabhu
GPG Id : 0xD72BE977
Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977
www: wnohang.net



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

--------------------------
Raghavendra Prabhu
GPG Id : 0xD72BE977
Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977
www: wnohang.net

Attachment: pgp00000.pgp
Description: PGP signature