]> git.neil.brown.name Git - history.git/commitdiff
Import 2.4.0-test1 2.4.0-test1
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:35:15 +0000 (15:35 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:35:15 +0000 (15:35 -0500)
Documentation/fb/modedb.txt
arch/i386/Makefile
arch/i386/config.in
arch/i386/defconfig
arch/i386/kernel/cpuid.c
arch/i386/kernel/msr.c
drivers/video/fbmem.c
fs/ncpfs/file.c
fs/ncpfs/ioctl.c
fs/nfsd/nfsfh.c
include/asm-i386/sigcontext.h

index 01fd784a295f06ca773f7441a66ad393e89a6ca7..049c4cd84fa02e984fb5d98282c3456927264271 100644 (file)
@@ -41,8 +41,20 @@ fb_find_mode() first tries the specified video mode (or any mode that matches,
 e.g. there can be multiple 640x480 modes, each of them is tried). If that
 fails, the default mode is tried. If that fails, it walks over all modes.
 
-BTW, only a few drivers use this at the moment. Others are to follow
-(feel free to send patches).
+To specify a video mode at bootup, use the following boot options:
+    video=<driver>:<xres>x<yres>[-<bpp>][@refresh]
+
+where <driver> is a name from the table below.  Valid default modes can be
+found in linux/drivers/video/modedb.c.  Check your driver's documentation.
+There may be more modes.
 
+    Drivers that support modedb boot options
+    Boot Name    Cards Supported
 
+    ami                - Amiga chipset frame buffer
+    aty128fb   - ATI Rage128 / Pro frame buffer
+    atyfb      - ATI Mach64 frame buffer
+    tdfx       - 3D Fx frame buffer
 
+BTW, only a few drivers use this at the moment. Others are to follow
+(feel free to send patches).
index 113a00fa6a5d7a38e43dc6e665b5aabd9946885d..755cc877a01a2ad8bf218003334a0601962cc80a 100644 (file)
@@ -49,6 +49,10 @@ ifdef CONFIG_M686
 CFLAGS += $(shell if $(CC) -march=i686 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=i686"; fi)
 endif
 
+ifdef CONFIG_M686FX
+CFLAGS += $(shell if $(CC) -march=i686 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=i686"; fi)
+endif
+
 ifdef CONFIG_MK6
 CFLAGS += $(shell if $(CC) -march=k6 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=k6"; fi)
 endif
index 830bb2687f968016289fb72cf697a82c7e48d0ff..a928efb334840bb7bbca803ee990ca4908721018 100644 (file)
@@ -18,15 +18,15 @@ endmenu
 mainmenu_option next_comment
 comment 'Processor type and features'
 choice 'Processor family' \
-       "386                    CONFIG_M386     \
-        486/Cx486              CONFIG_M486     \
-        586/K5/5x86/6x86/6x86MX        CONFIG_M586     \
-        Pentium/TSC            CONFIG_M586TSC  \
-        PPro/P-II/P-III        CONFIG_M686 \
-        Pentium-III            CONFIG_M686FX \
-        K6/II/III              CONFIG_MK6 \
-        Crusoe                 CONFIG_MCRUSOE \
-        Athlon                 CONFIG_MK7" PPro
+       "386                            CONFIG_M386 \
+        486/Cx486                      CONFIG_M486 \
+        586/K5/5x86/6x86/6x86MX        CONFIG_M586 \
+        Pentium/TSC                    CONFIG_M586TSC \
+        PPro/Pentium-II                CONFIG_M686 \
+        Pentium-III                    CONFIG_M686FX \
+        K6/K6-II/K6-III                CONFIG_MK6 \
+        Athlon                         CONFIG_MK7 \
+        Crusoe                         CONFIG_MCRUSOE" PPro
 #
 # Define implied options from the CPU selection here
 #
@@ -55,10 +55,6 @@ if [ "$CONFIG_M586TSC" = "y" ]; then
    define_bool CONFIG_X86_ALIGNMENT_16 y
    define_bool CONFIG_X86_TSC y
 fi
-if [ "$CONFIG_MCRUSOE" = "y" ]; then
-   define_int  CONFIG_X86_L1_CACHE_BYTES 32
-   define_bool CONFIG_X86_TSC y
-fi
 if [ "$CONFIG_M686" = "y" ]; then
    define_int  CONFIG_X86_L1_CACHE_BYTES 32
    define_bool CONFIG_X86_TSC y
@@ -88,6 +84,10 @@ if [ "$CONFIG_MK7" = "y" ]; then
    define_bool CONFIG_X86_PGE y
    define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
 fi
+if [ "$CONFIG_MCRUSOE" = "y" ]; then
+   define_int  CONFIG_X86_L1_CACHE_BYTES 32
+   define_bool CONFIG_X86_TSC y
+fi
 
 tristate '/dev/cpu/microcode - Intel P6 CPU microcode support' CONFIG_MICROCODE
 tristate '/dev/cpu/*/msr - Model-specific register support' CONFIG_X86_MSR
index b8623d115524db6decfc4f892b7df46cdb8c0a71..281a82cea24d763cccd1ac01775644b55090490a 100644 (file)
@@ -21,8 +21,8 @@ CONFIG_UID16=y
 CONFIG_M686=y
 # CONFIG_M686FX is not set
 # CONFIG_MK6 is not set
-# CONFIG_MCRUSOE is not set
 # CONFIG_MK7 is not set
+# CONFIG_MCRUSOE is not set
 CONFIG_X86_WP_WORKS_OK=y
 CONFIG_X86_INVLPG=y
 CONFIG_X86_CMPXCHG=y
index 9395e70948978dbfdd6a8ddfdbd61283d7d7303d..34c34d81894f4692e25033f53de8a08be4e88f9d 100644 (file)
@@ -71,14 +71,14 @@ extern inline void do_cpuid(int cpu, u32 reg, u32 *data)
     smp_call_function(cpuid_smp_cpuid, (void *)cmd, 1, 1);
   }
 }
-#else /* ! __SMP__ */
+#else /* ! CONFIG_SMP */
 
 extern inline void do_cpuid(int cpu, u32 reg, u32 *data)
 {
   cpuid(reg, &data[0], &data[1], &data[2], &data[3]);
 }
 
-#endif /* ! __SMP__ */
+#endif /* ! CONFIG_SMP */
 
 static loff_t cpuid_seek(struct file *file, loff_t offset, int orig)
 {
index a83f4deeb3d0411a3c0a8edfe47c7e18f1d07893..2ab1ecf33b3aef1194130ad6d08006bdf406768e 100644 (file)
@@ -143,7 +143,7 @@ extern inline int do_rdmsr(int cpu, u32 reg, u32 *eax, u32 *edx)
   }
 }
 
-#else /* ! __SMP__ */
+#else /* ! CONFIG_SMP */
 
 extern inline int do_wrmsr(int cpu, u32 reg, u32 eax, u32 edx)
 {
@@ -155,7 +155,7 @@ extern inline int do_rdmsr(int cpu, u32 reg, u32 *eax, u32 *edx)
   return rdmsr_eio(reg, eax, edx);
 }
 
-#endif /* ! __SMP__ */
+#endif /* ! CONFIG_SMP */
 
 static loff_t msr_seek(struct file *file, loff_t offset, int orig)
 {
index 88eda6d6f82bb3944f70e7486b3b98b9577cc198..554d911557b7e35101ba130b9b3c6f2c8ff3fb42 100644 (file)
@@ -233,13 +233,13 @@ static struct {
        /* Not a real frame buffer device... */
        { "resolver", NULL, resolver_video_setup },
 #endif
+#ifdef CONFIG_FB_SIS
+       { "sisfb", sisfb_init, sisfb_setup },
+#endif
 #ifdef CONFIG_FB_VIRTUAL
        /* Must be last to avoid that vfb becomes your primary display */
        { "vfb", vfb_init, vfb_setup },
 #endif
-#ifdef CONFIG_FB_SIS
-       { "sisfb", sisfb_init, sisfb_setup },
-#endif
 };
 
 #define NUM_FB_DRIVERS (sizeof(fb_drivers)/sizeof(*fb_drivers))
index 657e924de9d7e416aca1ab3071586d17c123837e..6f8fd2d631e04b4b9113c02ade60d744e34f738e 100644 (file)
@@ -275,12 +275,22 @@ out:
        return already_written ? already_written : errno;
 }
 
+static int ncp_release(struct inode *inode, struct file *file) {
+       if (NCP_FINFO(inode)->opened) {
+               if (ncp_make_closed(inode)) {
+                       DPRINTK("ncp_release: failed to close\n");
+               }
+       }
+       return 0;
+}
+
 struct file_operations ncp_file_operations =
 {
        read:           ncp_file_read,
        write:          ncp_file_write,
        ioctl:          ncp_ioctl,
        mmap:           ncp_mmap,
+       release:        ncp_release,
        fsync:          ncp_fsync,
 };
 
index 4f7a1d25314be6268948f610edfa162fb80c1ecf..26c95fc8f2082884e53e83964968b6db29683ea3 100644 (file)
@@ -250,21 +250,21 @@ int ncp_ioctl(struct inode *inode, struct file *filp,
                {
                        return -EACCES;
                }
-               if (server->sign_active)
-               {
-                       return -EINVAL;
-               }
-               if (server->sign_wanted)
-               {
-                       struct ncp_sign_init sign;
+               if (arg) {
+                       if (server->sign_wanted)
+                       {
+                               struct ncp_sign_init sign;
 
-                       if (copy_from_user(&sign, (struct ncp_sign_init *) arg,
-                             sizeof(sign))) return -EFAULT;
-                       memcpy(server->sign_root,sign.sign_root,8);
-                       memcpy(server->sign_last,sign.sign_last,16);
-                       server->sign_active = 1;
+                               if (copy_from_user(&sign, (struct ncp_sign_init *) arg,
+                                     sizeof(sign))) return -EFAULT;
+                               memcpy(server->sign_root,sign.sign_root,8);
+                               memcpy(server->sign_last,sign.sign_last,16);
+                               server->sign_active = 1;
+                       }
+                       /* ignore when signatures not wanted */
+               } else {
+                       server->sign_active = 0;
                }
-               /* ignore when signatures not wanted */
                return 0;               
                
         case NCP_IOC_SIGN_WANTED:
index f681c9bfc1df3426ad9350ba93c7a3d250aca21c..f8816159375c15c4845e76414a9283d78d4097cb 100644 (file)
@@ -812,8 +812,8 @@ fh_put(struct svc_fh *fhp)
 {
        struct dentry * dentry = fhp->fh_dentry;
        if (fhp->fh_dverified) {
-               fhp->fh_dentry = NULL;
                fh_unlock(fhp);
+               fhp->fh_dentry = NULL;
                fhp->fh_dverified = 0;
                dput(dentry);
                nfsd_nr_put++;
index 424ce8bdce36963364adeb94ec6e4b174cf40171..bb66dbe4922748c04112d6164a19d7af733bea4c 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _ASMi386_SIGCONTEXT_H
 #define _ASMi386_SIGCONTEXT_H
 
+#include <linux/config.h>
 /*
  * As documented in the iBCS2 standard..
  *