From fa5e8e4c6e34364f51e66b9bf9a88286b42a38d2 Mon Sep 17 00:00:00 2001 From: Jurij Smakov Date: Wed, 1 Nov 2006 17:29:49 +0000 Subject: [PATCH] Add bugfix/sparc/sunblade1k-boot-fix.patch by David Miller to fix the boottime crash on SunBlade1000. svn path=/dists/trunk/linux-2.6/; revision=7675 --- debian/changelog | 2 + .../bugfix/sparc/sunblade1k-boot-fix.patch | 48 +++++++++++++++++++ debian/patches/series/4 | 1 + 3 files changed, 51 insertions(+) create mode 100644 debian/patches/bugfix/sparc/sunblade1k-boot-fix.patch diff --git a/debian/changelog b/debian/changelog index 44564ef60..a990e25b4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -21,6 +21,8 @@ linux-2.6 (2.6.18-4) UNRELEASED; urgency=high (20 bytes). It fixes the situations in which storing longer device names in this field would cause corruption of adjacent memory regions. (closes: #394697). + * [sparc] Add bugfix/sparc/sunblade1k-boot-fix.patch (thanks to David + Miller) to fix a boottime crash on SunBlade1000. [ Martin Michlmayr ] * arm/iop32x: Fix the interrupt of the 2nd Ethernet slot on N2100. diff --git a/debian/patches/bugfix/sparc/sunblade1k-boot-fix.patch b/debian/patches/bugfix/sparc/sunblade1k-boot-fix.patch new file mode 100644 index 000000000..e261aecf1 --- /dev/null +++ b/debian/patches/bugfix/sparc/sunblade1k-boot-fix.patch @@ -0,0 +1,48 @@ +--- a/arch/sparc64/kernel/prom.c 2006-09-19 20:42:06.000000000 -0700 ++++ b/arch/sparc64/kernel/prom.c 2006-10-31 22:41:07.000000000 -0800 +@@ -794,7 +794,7 @@ + return virt_irq; + } + +-static void schizo_irq_trans_init(struct device_node *dp) ++static void __schizo_irq_trans_init(struct device_node *dp, int is_tomatillo) + { + struct linux_prom64_registers *regs; + struct schizo_irq_data *irq_data; +@@ -808,11 +808,24 @@ + dp->irq_trans->data = irq_data; + + irq_data->pbm_regs = regs[0].phys_addr; +- irq_data->sync_reg = regs[3].phys_addr + 0x1a18UL; ++ if (is_tomatillo) ++ irq_data->sync_reg = regs[3].phys_addr + 0x1a18UL; ++ else ++ irq_data->sync_reg = 0UL; + irq_data->portid = of_getintprop_default(dp, "portid", 0); + irq_data->chip_version = of_getintprop_default(dp, "version#", 0); + } + ++static void schizo_irq_trans_init(struct device_node *dp) ++{ ++ __schizo_irq_trans_init(dp, 0); ++} ++ ++static void tomatillo_irq_trans_init(struct device_node *dp) ++{ ++ __schizo_irq_trans_init(dp, 1); ++} ++ + static unsigned int pci_sun4v_irq_build(struct device_node *dp, + unsigned int devino, + void *_data) +@@ -1051,8 +1064,8 @@ + { "pci108e,8001", schizo_irq_trans_init }, + { "SUNW,schizo+", schizo_irq_trans_init }, + { "pci108e,8002", schizo_irq_trans_init }, +- { "SUNW,tomatillo", schizo_irq_trans_init }, +- { "pci108e,a801", schizo_irq_trans_init }, ++ { "SUNW,tomatillo", tomatillo_irq_trans_init }, ++ { "pci108e,a801", tomatillo_irq_trans_init }, + { "SUNW,sun4v-pci", pci_sun4v_irq_trans_init }, + }; + #endif diff --git a/debian/patches/series/4 b/debian/patches/series/4 index b83d5b380..2b67fcef5 100644 --- a/debian/patches/series/4 +++ b/debian/patches/series/4 @@ -21,3 +21,4 @@ + features/arm/ixp4xx-net-driver-fix-qmgr.patch + features/arm/ixp4xx-net-driver-improve-mac-handling.patch + bugfix/powerpc/interrupt-alignement.patch ++ bugfix/sparc/sunblade1k-boot-fix.patch