]> git.neil.brown.name Git - history.git/commitdiff
Import 1.2.11 1.2.11
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:10:00 +0000 (15:10 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:10:00 +0000 (15:10 -0500)
12 files changed:
Makefile
arch/i386/kernel/vm86.c
drivers/block/sonycd535.c
drivers/net/arcnet.c
drivers/scsi/53c7,8xx.c
drivers/scsi/u14-34f.c
drivers/scsi/u14-34f.h
fs/proc/inode.c
include/linux/sbpcd.h
kernel/exit.c
net/inet/af_inet.c
net/inet/icmp.c

index 2f2c17ea9c9f2b7156216185afe21d6d9fab26b6..405722080f1ed94e6366cc342f3d7eca95d021d6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 1
 PATCHLEVEL = 2
-SUBLEVEL = 10
+SUBLEVEL = 11
 
 ARCH = i386
 
index d55f8248f055549a0cbd022c4f367c0f7b9db345..fe601d1afee71cf2520a67d7243037bbf52cec75 100644 (file)
@@ -217,6 +217,8 @@ static inline unsigned long get_vflags(struct vm86_regs * regs)
 
 static inline int is_revectored(int nr, struct revectored_struct * bitmap)
 {
+       if (verify_area(VERIFY_READ, bitmap, 256/8) < 0)
+               return 1;
        __asm__ __volatile__("btl %2,%%fs:%1\n\tsbbl %0,%0"
                :"=r" (nr)
                :"m" (*bitmap),"r" (nr));
@@ -298,22 +300,32 @@ __res; })
 
 static void do_int(struct vm86_regs *regs, int i, unsigned char * ssp, unsigned long sp)
 {
-       unsigned short seg = get_fs_word((void *) ((i<<2)+2));
+       unsigned short *intr_ptr, seg;
 
-       if (seg == BIOSSEG || regs->cs == BIOSSEG ||
-           is_revectored(i, &current->tss.vm86_info->int_revectored))
-               return_to_32bit(regs, VM86_INTx + (i << 8));
+       if (regs->cs == BIOSSEG)
+               goto cannot_handle;
+       if (is_revectored(i, &current->tss.vm86_info->int_revectored))
+               goto cannot_handle;
        if (i==0x21 && is_revectored(AH(regs),&current->tss.vm86_info->int21_revectored))
-               return_to_32bit(regs, VM86_INTx + (i << 8));
+               goto cannot_handle;
+       intr_ptr = (unsigned short *) (i << 2);
+       if (verify_area(VERIFY_READ, intr_ptr, 4) < 0)
+               goto cannot_handle;
+       seg = get_fs_word(intr_ptr+1);
+       if (seg == BIOSSEG)
+               goto cannot_handle;
        pushw(ssp, sp, get_vflags(regs));
        pushw(ssp, sp, regs->cs);
        pushw(ssp, sp, IP(regs));
        regs->cs = seg;
        SP(regs) -= 6;
-       IP(regs) = get_fs_word((void *) (i<<2));
+       IP(regs) = get_fs_word(intr_ptr+0);
        clear_TF(regs);
        clear_IF(regs);
        return;
+
+cannot_handle:
+       return_to_32bit(regs, VM86_INTx + (i << 8));
 }
 
 void handle_vm86_debug(struct vm86_regs * regs, long error_code)
index 0ab6f13aa2ddcfc5a46aaae7d785985faca25364..e5f95a04e38a99532685700c339470fa1f057072 100644 (file)
@@ -28,7 +28,7 @@
  *      (Heiko Eissfeldt <heiko@colossus.escape.de>)
  *
  * 1995-06-01
- *  More chages to support CDU-510/515 series
+ *  More changes to support CDU-510/515 series
  *      (Claudio Porfiri<C.Porfiri@nisms.tei.ericsson.se>)
  *
  * Things to do:
index 2579f01936c350a40df32c38462d71615e8b74fe..17473cc05c3923fa97fb3c6cff46398164e99d5e 100644 (file)
@@ -2,7 +2,7 @@
        Written 1994-95 by Avery Pennarun, derived from skeleton.c by
         Donald Becker.
 
-       Contact Avery at: apenwarr@tourism.807-city.on.ca or
+       Contact Avery at: apenwarr@foxnet.net or
        RR #5 Pole Line Road, Thunder Bay, ON, Canada P7C 5M9
        
        **********************
          
        **********************
 
+       v1.02 (95/06/21)
+         - A fix to make "exception" packets sent from Linux receivable
+           on other systems.  (The protocol_id byte was sometimes being set
+           incorrectly, and Linux wasn't checking it on receive so it
+           didn't show up)
+         - Updated my email address.  Please use apenwarr@foxnet.net
+           from now on.
        v1.01 (95/03/24)
          - Fixed some IPX-related bugs. (Thanks to Tomasz Motylewski
             <motyl@tichy.ch.uj.edu.pl> for the patches to make arcnet work
@@ -79,7 +86,7 @@
  * 8 times every second.
  *
  * This should no longer be necessary.  if you experience "stuck" ARCnet
- * drivers, please email apenwarr@tourism.807-city.on.ca or I will remove
+ * drivers, please email apenwarr@foxnet.net or I will remove
  * this feature in a future release.
  */
 #undef USE_TIMER_HANDLER
@@ -87,7 +94,7 @@
 /**************************************************************************/
  
 static char *version =
- "arcnet.c:v1.01 95/03/24 Avery Pennarun <apenwarr@tourism.807-city.on.ca>\n";
+ "arcnet.c:v1.02 95/06/21 Avery Pennarun <apenwarr@foxnet.net>\n";
 
 /*
   Sources:
@@ -1250,7 +1257,7 @@ arcnet_prepare_tx(struct device *dev,struct ClientData *hdr,short length,
                 * make the packet long enough to fit in a 512-byte
                 * frame.
                 */
-               arcpacket->raw[offset+0]=arcsoft->protocol_id;
+               arcpacket->raw[offset+0]=hdr->protocol_id;
                arcpacket->raw[offset+1]=0xFF; /* FF flag */
                        arcpacket->raw[offset+2]=0xFF; /* FF padding */
                        arcpacket->raw[offset+3]=0xFF; /* FF padding */
index 922f745616d63c55d0dcc8283947397551ef10cb..0b8a2cf7f7b40ca49b75e8b80405c2f7cb8ef975 100644 (file)
@@ -271,8 +271,8 @@ static Scsi_Host_Template *the_template = NULL;
 struct pci_chip {
     unsigned short pci_device_id;
     int chip;
-    int max_revision;
     int min_revision;
+    int max_revision;
 };
 
 static struct pci_chip pci_chip_ids[] = { 
@@ -351,7 +351,7 @@ static void internal_setup(int board, int chip, char *str, int *ints) {
        } else {
            overrides[commandline_current].data.pci.bus = ints[1];
            overrides[commandline_current].data.pci.device = ints[2];
-           overrides[commandline_current].data.pci.device = ints[3];
+           overrides[commandline_current].data.pci.function = ints[3];
            overrides[commandline_current].options = (ints[0] >= 4) ?
                ints[4] : 0;
        }
index 7ce244ab1c3c9f1af1e66eefeb17ce05fccaea74..933c9cbbfda1d8a889cca253fba613ba0f582336 100644 (file)
@@ -1,6 +1,10 @@
 /*
  *      u14-34f.c - Low-level driver for UltraStor 14F/34F SCSI host adapters.
  *
+ *      13 Jun 1995 rev. 2.01 for linux 1.2.10
+ *         HAVE_OLD_UX4F_FIRMWARE should be defined for U34F boards when
+ *         the firmware prom is not the lastest one (28008-006).
+ *
  *      11 Mar 1995 rev. 2.00 for linux 1.2.0
  *          Fixed a bug which prevented media change detection for removable
  *          disk drives.
  *
  *      Copyright (C) 1994, 1995 Dario Ballabio (dario@milano.europe.dg.com)
  *
- *      WARNING: if your 14F board has an old firmware revision (see below)
+ *      WARNING: if your 14/34F board has an old firmware revision (see below)
  *               you must change "#undef" into "#define" in the following
  *               statement.
  */
-#undef HAVE_OLD_U14F_FIRMWARE
+#undef HAVE_OLD_UX4F_FIRMWARE
 /*
  *  The UltraStor 14F, 24F, and 34F are a family of intelligent, high
  *  performance SCSI-2 host adapters.
  *
  *    The new firmware has fixed all the above problems.
  *
+ *  For U34F boards the latest bios prom is 38008-002 (BIOS rev. 2.01),
+ *  the latest firmware prom is 28008-006. Older firmware 28008-005 has
+ *  problems when using more then 16 scatter/gather lists.
+ *
  *  In order to support multiple ISA boards in a reliable way,
  *  the driver sets host->wish_block = TRUE for all ISA boards.
  */
@@ -449,6 +457,11 @@ static inline int port_detect(ushort *port_base, unsigned int j,
    irqlist[irq] = j;
 
    if (HD(j)->subversion == ESA) {
+
+#if defined (HAVE_OLD_UX4F_FIRMWARE)
+      sh[j]->sg_tablesize = MAX_SAFE_SGLIST;
+#endif
+
       sh[j]->dma_channel = NO_DMA;
       sh[j]->unchecked_isa_dma = FALSE;
       sprintf(BN(j), "U34F%d", j);
@@ -456,7 +469,7 @@ static inline int port_detect(ushort *port_base, unsigned int j,
    else {
       sh[j]->wish_block = TRUE;
 
-#if defined (HAVE_OLD_U14F_FIRMWARE)
+#if defined (HAVE_OLD_UX4F_FIRMWARE)
       sh[j]->hostt->use_clustering = DISABLE_CLUSTERING;
       sh[j]->sg_tablesize = MAX_SAFE_SGLIST;
 #endif
@@ -475,7 +488,7 @@ static inline int port_detect(ushort *port_base, unsigned int j,
 
       if (strcmp(&HD(j)->board_id[32], "06000600")) {
          printk("%s: %s.\n", BN(j), &HD(j)->board_id[8]);
-         printk("%s: firmware %s is outdated, BIOS rev. should be 2.01.\n", 
+         printk("%s: firmware %s is outdated, FW PROM should be 28004-006.\n",
                 BN(j), &HD(j)->board_id[32]);
          sh[j]->hostt->use_clustering = DISABLE_CLUSTERING;
          sh[j]->sg_tablesize = MAX_SAFE_SGLIST;
index a4885efea06d60c58be1114f10e76da3ed08105f..e53170299b02ed76246a537e47f53ee887780e26 100644 (file)
@@ -10,7 +10,7 @@ int u14_34f_abort(Scsi_Cmnd *);
 int u14_34f_reset(Scsi_Cmnd *);
 int u14_34f_biosparam(Disk *, int, int *);
 
-#define U14_34F_VERSION "2.00.00"
+#define U14_34F_VERSION "2.01.00"
 
 #define ULTRASTOR_14_34F {                                            \
                 NULL, /* Ptr for modules */                           \
index f91eb28f513299c8cd5a5347e5b9df3a48574bc8..228f59dbdf7a41bfe61fadf49cfacc392ffc4e34 100644 (file)
@@ -194,8 +194,10 @@ void proc_read_inode(struct inode * inode)
                return;
        }
        ino &= 0x0000ffff;
-       inode->i_uid = p->euid;
-       inode->i_gid = p->egid;
+       if (p->dumpable && p->uid == p->euid && p->gid == p->egid) {
+               inode->i_uid = p->uid;
+               inode->i_gid = p->gid;
+       }
        switch (ino) {
                case PROC_PID_INO:
                        inode->i_nlink = 4;
index ee7ec8d4c4c287f4b251b7182fa72758df2ec4a3..84fc19a8ba4add31666eb8a83708629c4cda7fe7 100644 (file)
 #define _LINUX_SBPCD_H
 /*==========================================================================*/
 /*==========================================================================*/
-#define LONG_TIMING 0 /* test against timeouts with "gold" CDs on CR-521 */
+#define LONG_TIMING 1 /* test against timeouts with "gold" CDs on CR-521 */
 #undef  FUTURE
 
 #define TEST_UPC 0
index 588c0e47fea04b5a3e6fdd5b3954dce41f1a6b89..75f5858057d25cbccd1f128a7f43fa12dbe3f6f6 100644 (file)
@@ -4,7 +4,7 @@
  *  Copyright (C) 1991, 1992  Linus Torvalds
  */
 
-#define DEBUG_PROC_TREE
+#undef DEBUG_PROC_TREE
 
 #include <linux/wait.h>
 #include <linux/errno.h>
index 7f7dd9ec530249da996864bd1de90e740fb20d30..48791b980ad51a217f1e82d1a502776f7aa4cb8a 100644 (file)
@@ -474,8 +474,8 @@ static int inet_listen(struct socket *sock, int backlog)
         * somewhere. We might as well truncate it to what everybody
         * else does..
         */
-       if (backlog > 5)
-               backlog = 5;
+       if ((unsigned) backlog > 128)
+               backlog = 128;
        sk->max_ack_backlog = backlog;
        if (sk->state != TCP_LISTEN)
        {
index c023eab2e715af110401819b5fa9f215a94613b1..d04541ff7f8a775b5c955878c50a7bd95aa06a42 100644 (file)
@@ -125,7 +125,7 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, unsigned long info, s
         */
         
        atype=ip_chk_addr(iph->daddr);
-       if(atype==IS_BROADCAST || IN_MULTICAST(iph->daddr))
+       if(atype==IS_BROADCAST || atype==IS_MULTICAST)
                return;
 
        /*