[Patch] Panic on ia64 when you modprobe -r xpc.

From: Robin Holt
Date: Thu Sep 11 2008 - 16:41:00 EST


If you are on ia64 and you modprobe xpc then modprobe -r xpc, you
immediately get a panic. xpc depends on xp which depends on gru for
a symbol. That symbol is only used when we are running on UV hardware.

Currently, the GRU driver detects we are not on UV hardware and does
no initializing. It does not do the same check when unloading. As a
result, the gru driver attempts to tear down stuff that was not setup.

This is a simple two-line workaround to get us through this release.
Once 2.6.28 is opened, we need to rework the symbols that xp is depending
on from gru so the gru driver can properly fail to load when hardware
is not available.

Signed-off-by: Robin Holt <holt@xxxxxxx>


Index: xpmem_v006_20080911/drivers/misc/sgi-gru/grufile.c
===================================================================
--- xpmem_v006_20080911.orig/drivers/misc/sgi-gru/grufile.c 2008-09-11 15:23:40.000000000 -0500
+++ xpmem_v006_20080911/drivers/misc/sgi-gru/grufile.c 2008-09-11 15:33:21.009814869 -0500
@@ -445,6 +445,9 @@ static void __exit gru_exit(void)
int order = get_order(sizeof(struct gru_state) *
GRU_CHIPLETS_PER_BLADE);

+ if (!IS_UV())
+ return;
+
for (i = 0; i < GRU_CHIPLETS_PER_BLADE; i++)
free_irq(IRQ_GRU + i, NULL);

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/