Guido Guenther wrote:
> Hi Joey,
> On Sun, Dec 08, 2002 at 06:07:23PM +0100, Martin Schulze wrote:
> > Hence, I propose the following actions:
> > 
> > install kernel-patch-2.4.19-mips
> > remove  kernel-patch-2.4.17-mips
> > 
> > Please shout if something is wrong with this.
> We built the boot-floppies with 2.4.16 and will build the next ones with
> 2.4.19 so removing 2.4.17 should be save. I've been running the woody
> backport of 2.4.19 for several weeks now.

Is it possible to update kernel-patch-*-mips before to include the appended
patch or is this too late? It fixes the kernel stack corruption encountered
on Personal DECstations which is triggered by e.g. debian-installer.


Thiemo


diff -BurpNX /bigdisk/src/dontdiff linux-orig/arch/mips/dec/prom/identify.c 
linux/arch/mips/dec/prom/identify.c
--- linux-orig/arch/mips/dec/prom/identify.c    Fri Dec  6 00:42:36 2002
+++ linux/arch/mips/dec/prom/identify.c Fri Dec  6 00:39:47 2002
@@ -16,21 +16,29 @@
 extern unsigned long mips_machgroup;
 extern unsigned long mips_machtype;
 
-extern unsigned long mips_machtype;
+static const char *dec_system_strings[] = {
+       [MACH_DSUNKNOWN]        "unknown DECstation",
+       [MACH_DS23100]          "DECstation 2100/3100",
+       [MACH_DS5100]           "DECstation 5100",
+       [MACH_DS5000_200]       "DECstation 5000/200",
+       [MACH_DS5000_1XX]       "DECstation 5000/1xx",
+       [MACH_DS5000_XX]        "Personal DECstation 5000/xx",
+       [MACH_DS5000_2X0]       "DECstation 5000/2x0",
+       [MACH_DS5400]           "DECstation 5400",
+       [MACH_DS5500]           "DECstation 5500",
+       [MACH_DS5800]           "DECstation 5800"
+};
+
 const char *get_system_type(void)
 {
-       static char system[32];
-       int called = 0;
-       const char *dec_system_strings[] = { "unknown", "DECstation 2100/3100",
-               "DECstation 5100", "DECstation 5000/200", "DECstation 5000/1xx",
-               "Personal DECstation 5000/xx", "DECstation 5000/2x0",
-               "DECstation 5400", "DECstation 5500", "DECstation 5800"
-       };
+#define STR_BUF_LEN    64
+       static char system[STR_BUF_LEN];
+       static int called = 0;
 
        if (called == 0) {
                called = 1;
-               strcpy(system, "Digital ");
-               strcat(system, dec_system_strings[mips_machtype]);
+               snprintf(system, STR_BUF_LEN, "Digital %s",
+                        dec_system_strings[mips_machtype]);
        }
 
        return system;
@@ -63,50 +71,44 @@ void __init prom_identify_arch(u32 magic
         * FIXME: This may not be an exhaustive list of DECStations/Servers!
         * Put all model-specific initialisation calls here.
         */
-       prom_printf("This DECstation is a ");
-
        switch (dec_systype) {
        case DS2100_3100:
-               prom_printf("DS2100/3100\n");
                mips_machtype = MACH_DS23100;
                break;
        case DS5100:            /* DS5100 MIPSMATE */
-               prom_printf("DS5100\n");
                mips_machtype = MACH_DS5100;
                break;
        case DS5000_200:        /* DS5000 3max */
-               prom_printf("DS5000/200\n");
                mips_machtype = MACH_DS5000_200;
                break;
        case DS5000_1XX:        /* DS5000/100 3min */
-               prom_printf("DS5000/1xx\n");
                mips_machtype = MACH_DS5000_1XX;
                break;
        case DS5000_2X0:        /* DS5000/240 3max+ */
-               prom_printf("DS5000/2x0\n");
                mips_machtype = MACH_DS5000_2X0;
                break;
        case DS5000_XX: /* Personal DS5000/2x */
-               prom_printf("Personal DS5000/xx\n");
                mips_machtype = MACH_DS5000_XX;
                break;
        case DS5800:            /* DS5800 Isis */
-               prom_printf("DS5800\n");
                mips_machtype = MACH_DS5800;
                break;
        case DS5400:            /* DS5400 MIPSfair */
-               prom_printf("DS5400\n");
                mips_machtype = MACH_DS5400;
                break;
        case DS5500:            /* DS5500 MIPSfair-2 */
-               prom_printf("DS5500\n");
                mips_machtype = MACH_DS5500;
                break;
        default:
-               prom_printf("unknown, id is %x", dec_systype);
                mips_machtype = MACH_DSUNKNOWN;
                break;
        }
-}
-
 
+       if (mips_machtype == MACH_DSUNKNOWN)
+               prom_printf("This is an %s, id is %x\n",
+                           dec_system_strings[mips_machtype],
+                           dec_systype);
+       else
+               prom_printf("This is a %s\n",
+                           dec_system_strings[mips_machtype]);
+}

Reply via email to