]> git.neil.brown.name Git - history.git/commitdiff
Import 2.1.122pre2 2.1.122pre2
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:16:39 +0000 (15:16 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:16:39 +0000 (15:16 -0500)
CREDITS
arch/i386/kernel/irq.c
arch/i386/kernel/mtrr.c
drivers/net/Config.in
fs/isofs/inode.c

diff --git a/CREDITS b/CREDITS
index cf5554fa7c20fbe90f70e7168fec360e04938d9f..f62977ca83267a78d429021f5eb3917a337f17ed 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -1615,14 +1615,12 @@ S: Beaverton, Oregon 97008
 S: USA
 
 N: Mike Shaver
-E: shaver@ingenia.com
-W: http://neon.ingenia.com/~shaver/
-D: Network hacking, /proc/sys/net
-S: c/o Ingenia Communications Corporation
-S: Suite 4200, CTTC Building
-S: 1125 Colonel By Drive
+E: shaver@netscape.com
+W: http://people.netscape.com/shaver/
+D: MIPS work, /proc/sys/net, misc net hacking
+S: 149 Union St.
 S: Ottawa, Ontario
-S: Canada K1S 5R1
+S: Canada K7L 2P4
 
 N: John Shifflett
 E: john@geolog.com
index 1baf19aea43d35e3ac0215cd4429a7bc1da89478..e5bc7e8d21e6658e974ae7744406bedfc23b2fff 100644 (file)
@@ -699,7 +699,7 @@ void enable_irq(unsigned int irq)
         * install a handler for this interrupt (make irq autodetection
         * work by just looking at the status field for the irq)
         */
-       irq_desc[irq].status = 0;
+       irq_desc[irq].status &= ~(IRQ_DISABLED | IRQ_INPROGRESS);
        irq_desc[irq].handler->enable(irq);
        spin_unlock_irqrestore(&irq_controller_lock, flags);
 }
@@ -785,7 +785,6 @@ int setup_x86_irq(unsigned int irq, struct irqaction * new)
        *p = new;
 
        if (!shared) {
-               irq_desc[irq].status = 0;
 #ifdef __SMP__
                if (IO_APIC_IRQ(irq)) {
                        /*
@@ -796,10 +795,11 @@ int setup_x86_irq(unsigned int irq, struct irqaction * new)
                        if (irq < 16) {
                                disable_8259A_irq(irq);
                                if (i8259A_irq_pending(irq))
-                                       irq_desc[irq].status = IRQ_PENDING;
+                                       irq_desc[irq].status |= IRQ_PENDING;
                        }
                }
 #endif
+               irq_desc[irq].status &= ~(IRQ_DISABLED | IRQ_INPROGRESS);
                irq_desc[irq].handler->enable(irq);
        }
        spin_unlock_irqrestore(&irq_controller_lock,flags);
index f56bcdfa15047b9dc62fae5924677a8abc186a8d..9d079cc1fe317a18941e8b236430fca5cc7b2491 100644 (file)
     19980611   Richard Gooch <rgooch@atnf.csiro.au>
               Always define <main_lock>.
   v1.22
+    19980901   Richard Gooch <rgooch@atnf.csiro.au>
+              Removed module support in order to tidy up code.
+              Added sanity check for <mtrr_add>/<mtrr_del> before <mtrr_init>.
+              Created addition queue for prior to SMP commence.
+  v1.23
+    19980910   Richard Gooch <rgooch@atnf.csiro.au>
+              Removed sanity checks and addition queue: Linus prefers an OOPS.
+  v1.24
 */
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <asm/bitops.h>
 #include <asm/atomic.h>
 
-#define MTRR_VERSION            "1.22 (19980611)"
+#define MTRR_VERSION            "1.24 (19980910)"
 
 #define TRUE  1
 #define FALSE 0
@@ -658,13 +666,8 @@ static void set_mtrr_smp (unsigned int reg, unsigned long base,
 }   /*  End Function set_mtrr_smp  */
 
 
-/* A warning that is common to the module and non-module cases. */
 /* Some BIOS's are fucked and don't set all MTRRs the same! */
-#ifdef MODULE
-static void mtrr_state_warn (unsigned long mask)
-#else
 __initfunc(static void mtrr_state_warn (unsigned long mask))
-#endif
 {
     if (!mask) return;
     if (mask & MTRR_CHANGE_MASK_FIXED)
@@ -676,37 +679,6 @@ __initfunc(static void mtrr_state_warn (unsigned long mask))
     printk ("mtrr: probably your BIOS does not setup all CPUs\n");
 }   /*  End Function mtrr_state_warn  */
 
-#ifdef MODULE
-/* As a module, copy the MTRR state using an IPI handler. */
-
-static volatile unsigned long smp_changes_mask = 0;
-
-static void copy_mtrr_state_handler (struct set_mtrr_context *ctxt, void *info)
-{
-    unsigned long mask, count;
-    struct mtrr_state *smp_mtrr_state = info;
-
-    mask = set_mtrr_state (smp_mtrr_state, ctxt);
-    /*  Use the atomic bitops to update the global mask  */
-    for (count = 0; count < sizeof mask * 8; ++count)
-    {
-       if (mask & 0x01) set_bit (count, &smp_changes_mask);
-       mask >>= 1;
-    }
-}   /*  End Function copy_mtrr_state_handler  */
-
-/* Copies the entire MTRR state of this CPU to all the others. */
-static void copy_mtrr_state (void)
-{
-    struct mtrr_state ms;
-    get_mtrr_state (&ms);
-    do_all_cpus (copy_mtrr_state_handler, &ms, FALSE);
-    finalize_mtrr_state (&ms);
-    mtrr_state_warn (smp_changes_mask);
-}   /*  End Function copy_mtrr_state  */
-
-#endif /* MODULE */
 #endif  /*  __SMP__  */
 
 static char *attrib_to_str (int x)
@@ -1163,7 +1135,7 @@ static void compute_ascii (void)
 EXPORT_SYMBOL(mtrr_add);
 EXPORT_SYMBOL(mtrr_del);
 
-#if defined(__SMP__) && !defined(MODULE)
+#ifdef __SMP__
 
 static volatile unsigned long smp_changes_mask __initdata = 0;
 static struct mtrr_state smp_mtrr_state __initdata = {0, 0};
@@ -1196,26 +1168,18 @@ __initfunc(void mtrr_init_secondary_cpu (void))
     }
 }   /*  End Function mtrr_init_secondary_cpu  */
 
-#endif
+#endif  /*  __SMP__  */
 
-#ifdef MODULE
-int init_module (void)
-#else
 __initfunc(int mtrr_init(void))
-#endif
 {
     if ( !(boot_cpu_data.x86_capability & X86_FEATURE_MTRR) ) return 0;
-#  if !defined(__SMP__) || defined(MODULE) 
+#  ifndef __SMP__
     printk("mtrr: v%s Richard Gooch (rgooch@atnf.csiro.au)\n", MTRR_VERSION);
 #  endif
 
 #  ifdef __SMP__
-#    ifdef MODULE
-    copy_mtrr_state ();
-#    else /* MODULE */
     finalize_mtrr_state (&smp_mtrr_state);
     mtrr_state_warn (smp_changes_mask);
-#    endif /* MODULE */
 #  endif /* __SMP__ */
 
 #  ifdef CONFIG_PROC_FS
@@ -1224,17 +1188,4 @@ __initfunc(int mtrr_init(void))
 
     init_table ();
     return 0;
-}
-
-#ifdef MODULE
-void cleanup_module (void)
-{
-    if ( !(boot_cpu_data.x86_capability & X86_FEATURE_MTRR) ) return;
-#  ifdef CONFIG_PROC_FS
-    proc_unregister (&proc_root, PROC_MTRR);
-#  endif
-#    ifdef __SMP__
-    mtrr_hook = NULL;
-#    endif
-}
-#endif
+}   /*  End Function mtrr_init  */
index 2c6638004fa192543f1183c1f7ea1009950d2916..b7f36ee144e2cdbb287c0e44c7daf17a18811eb9 100644 (file)
@@ -153,18 +153,16 @@ fi
 # AppleTalk
 #
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-  if [ "$CONFIG_ATALK" != "n" ]; then
-    tristate 'Apple/Farallon LocalTalk PC support' CONFIG_LTPC
-    tristate 'COPS LocalTalk PC support' CONFIG_COPS
-    if [ "$CONFIG_COPS" != "n" ]; then
-       bool 'Dayna firmware support' CONFIG_COPS_DAYNA
-       bool 'Tangent firmware support' CONFIG_COPS_TANGENT
-    fi
-    tristate 'Appletalk-IP driver support' CONFIG_IPDDP
-    if [ "$CONFIG_IPDDP" != "n" ]; then
-       bool 'IP to Appletalk-IP Encapsulation support' CONFIG_IPDDP_ENCAP
-       bool 'Appletalk-IP to IP Decapsulation support' CONFIG_IPDDP_DECAP
-    fi
+  dep_tristate 'Apple/Farallon LocalTalk PC support' CONFIG_LTPC $CONFIG_ATALK
+  dep_tristate 'COPS LocalTalk PC support' CONFIG_COPS
+  if [ "$CONFIG_COPS" != "n" ]; then
+    bool 'Dayna firmware support' CONFIG_COPS_DAYNA
+    bool 'Tangent firmware support' CONFIG_COPS_TANGENT
+  fi
+  dep_tristate 'Appletalk-IP driver support' CONFIG_IPDDP $CONFIG_ATALK
+  if [ "$CONFIG_IPDDP" != "n" ]; then
+     bool 'IP to Appletalk-IP Encapsulation support' CONFIG_IPDDP_ENCAP
+     bool 'Appletalk-IP to IP Decapsulation support' CONFIG_IPDDP_DECAP
   fi
 fi
 
index 06de6ac7ce84a5baf41257b1dee9f21040fcb600..406dae9aca5f90c9396b90318d25c58cc1d2bffa 100644 (file)
@@ -320,7 +320,7 @@ static int parse_options(char *options, struct iso9660_options * popt)
                        *value++ = 0;
 
 #ifdef CONFIG_JOLIET
-               if (!strcmp(this_char,"iocharset")) {
+               if (!strcmp(this_char,"iocharset") && value) {
                        popt->iocharset = value;
                        while (*value && *value != ',')
                                value++;