]> nv-tegra.nvidia Code Review - linux-2.6.git/commitdiff
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
authorLinus Torvalds <torvalds@g5.osdl.org>
Wed, 22 Mar 2006 18:47:24 +0000 (10:47 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 22 Mar 2006 18:47:24 +0000 (10:47 -0800)
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (138 commits)
  [SCSI] libata: implement minimal transport template for ->eh_timed_out
  [SCSI] eliminate rphy allocation in favour of expander/end device allocation
  [SCSI] convert mptsas over to end_device/expander allocations
  [SCSI] allow displaying and setting of cache type via sysfs
  [SCSI] add scsi_mode_select to scsi_lib.c
  [SCSI] 3ware 9000 add big endian support
  [SCSI] qla2xxx: update MAINTAINERS
  [SCSI] scsi: move target_destroy call
  [SCSI] fusion - bump version
  [SCSI] fusion - expander hotplug suport in mptsas module
  [SCSI] fusion - exposing raid components in mptsas
  [SCSI] fusion - memory leak, and initializing fields
  [SCSI] fusion - exclosure misspelled
  [SCSI] fusion - cleanup mptsas event handling functions
  [SCSI] fusion - removing target_id/bus_id from the VirtDevice structure
  [SCSI] fusion - static fix's
  [SCSI] fusion - move some debug firmware event debug msgs to verbose level
  [SCSI] fusion - loginfo header update
  [SCSI] add scsi_reprobe_device
  [SCSI] megaraid_sas: fix extended timeout handling
  ...

1  2 
MAINTAINERS
drivers/scsi/sg.c

diff --combined MAINTAINERS
index ebef0ae90e2e3d8e4c45c66ebe69d9442cba0add,b0dc75a5e74e2c6749fce0f5418fc69eb261a3f7..dd1351dc32b895b5298fabe7c0c37062af9489c4
@@@ -1349,10 -1349,10 +1349,10 @@@ S:   Maintaine
  INTEL PRO/100 ETHERNET SUPPORT
  P:    John Ronciak
  M:    john.ronciak@intel.com
 -P:    Ganesh Venkatesan
 -M:    ganesh.venkatesan@intel.com
  P:    Jesse Brandeburg
  M:    jesse.brandeburg@intel.com
 +P:    Jeff Kirsher
 +M:    jeffrey.t.kirsher@intel.com
  W:    http://sourceforge.net/projects/e1000/
  S:    Supported
  
@@@ -1361,22 -1361,18 +1361,22 @@@ P:   Jeb Crame
  M:    cramerj@intel.com
  P:    John Ronciak
  M:    john.ronciak@intel.com
 -P:    Ganesh Venkatesan
 -M:    ganesh.venkatesan@intel.com
 +P:    Jesse Brandeburg
 +M:    jesse.brandeburg@intel.com
 +P:    Jeff Kirsher
 +M:    jeffrey.t.kirsher@intel.com
  W:    http://sourceforge.net/projects/e1000/
  S:    Supported
  
  INTEL PRO/10GbE SUPPORT
 +P:    Jeff Kirsher
 +M:    jeffrey.t.kirsher@intel.com
  P:    Ayyappan Veeraiyan
  M:    ayyappan.veeraiyan@intel.com
 -P:    Ganesh Venkatesan
 -M:    ganesh.venkatesan@intel.com
  P:    John Ronciak
  M:    john.ronciak@intel.com
 +P:    Jesse Brandeburg
 +M:    jesse.brandeburg@intel.com
  W:    http://sourceforge.net/projects/e1000/
  S:    Supported
  
@@@ -2145,7 -2141,7 +2145,7 @@@ S:      Maintaine
  
  QLOGIC QLA2XXX FC-SCSI DRIVER
  P:    Andrew Vasquez
- M:    andrew.vasquez@qlogic.com
+ M:    linux-driver@qlogic.com
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  
diff --combined drivers/scsi/sg.c
index 0e0ca8fc73180cb87a24105e565aee7e228205d1,a8b05ce5de529fa7ea40c35763f6fd2f2d1f68c5..7405d0df95dbc3317eafde865dbdb2937e96b47a
@@@ -44,7 -44,6 +44,6 @@@ static int sg_version_num = 30533;    /* 
  #include <linux/poll.h>
  #include <linux/smp_lock.h>
  #include <linux/moduleparam.h>
- #include <linux/devfs_fs_kernel.h>
  #include <linux/cdev.h>
  #include <linux/seq_file.h>
  #include <linux/blkdev.h>
@@@ -1140,6 -1139,32 +1139,6 @@@ sg_fasync(int fd, struct file *filp, in
        return (retval < 0) ? retval : 0;
  }
  
 -/* When startFinish==1 increments page counts for pages other than the 
 -   first of scatter gather elements obtained from alloc_pages().
 -   When startFinish==0 decrements ... */
 -static void
 -sg_rb_correct4mmap(Sg_scatter_hold * rsv_schp, int startFinish)
 -{
 -      struct scatterlist *sg = rsv_schp->buffer;
 -      struct page *page;
 -      int k, m;
 -
 -      SCSI_LOG_TIMEOUT(3, printk("sg_rb_correct4mmap: startFinish=%d, scatg=%d\n", 
 -                                 startFinish, rsv_schp->k_use_sg));
 -      /* N.B. correction _not_ applied to base page of each allocation */
 -      for (k = 0; k < rsv_schp->k_use_sg; ++k, ++sg) {
 -              for (m = PAGE_SIZE; m < sg->length; m += PAGE_SIZE) {
 -                      page = sg->page;
 -                      if (startFinish)
 -                              get_page(page);
 -                      else {
 -                              if (page_count(page) > 0)
 -                                      __put_page(page);
 -                      }
 -              }
 -      }
 -}
 -
  static struct page *
  sg_vma_nopage(struct vm_area_struct *vma, unsigned long addr, int *type)
  {
@@@ -1211,7 -1236,10 +1210,7 @@@ sg_mmap(struct file *filp, struct vm_ar
                sa += len;
        }
  
 -      if (0 == sfp->mmap_called) {
 -              sg_rb_correct4mmap(rsv_schp, 1);        /* do only once per fd lifetime */
 -              sfp->mmap_called = 1;
 -      }
 +      sfp->mmap_called = 1;
        vma->vm_flags |= VM_RESERVED;
        vma->vm_private_data = sfp;
        vma->vm_ops = &sg_mmap_vm_ops;
@@@ -1332,7 -1360,7 +1331,7 @@@ static int sg_alloc(struct gendisk *dis
        void *old_sg_dev_arr = NULL;
        int k, error;
  
-       sdp = kmalloc(sizeof(Sg_device), GFP_KERNEL);
+       sdp = kzalloc(sizeof(Sg_device), GFP_KERNEL);
        if (!sdp) {
                printk(KERN_WARNING "kmalloc Sg_device failure\n");
                return -ENOMEM;
                int tmp_dev_max = sg_nr_dev + SG_DEV_ARR_LUMP;
                write_unlock_irqrestore(&sg_dev_arr_lock, iflags);
  
-               tmp_da = kmalloc(tmp_dev_max * sizeof(Sg_device *), GFP_KERNEL);
+               tmp_da = kzalloc(tmp_dev_max * sizeof(Sg_device *), GFP_KERNEL);
                if (unlikely(!tmp_da))
                        goto expand_failed;
  
                write_lock_irqsave(&sg_dev_arr_lock, iflags);
-               memset(tmp_da, 0, tmp_dev_max * sizeof(Sg_device *));
                memcpy(tmp_da, sg_dev_arr, sg_dev_max * sizeof(Sg_device *));
                old_sg_dev_arr = sg_dev_arr;
                sg_dev_arr = tmp_da;
        if (unlikely(k >= SG_MAX_DEVS))
                goto overflow;
  
-       memset(sdp, 0, sizeof(*sdp));
        SCSI_LOG_TIMEOUT(3, printk("sg_alloc: dev=%d \n", k));
        sprintf(disk->disk_name, "sg%d", k);
        disk->first_minor = k;
@@@ -1429,14 -1455,10 +1426,10 @@@ sg_add(struct class_device *cl_dev, str
        k = error;
        sdp = sg_dev_arr[k];
  
-       devfs_mk_cdev(MKDEV(SCSI_GENERIC_MAJOR, k),
-                       S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP,
-                       "%s/generic", scsidp->devfs_name);
        error = cdev_add(cdev, MKDEV(SCSI_GENERIC_MAJOR, k), 1);
-       if (error) {
-               devfs_remove("%s/generic", scsidp->devfs_name);
+       if (error)
                goto out;
-       }
        sdp->cdev = cdev;
        if (sg_sysfs_valid) {
                struct class_device * sg_class_member;
@@@ -1526,7 -1548,6 +1519,6 @@@ sg_remove(struct class_device *cl_dev, 
                class_device_destroy(sg_sysfs_class, MKDEV(SCSI_GENERIC_MAJOR, k));
                cdev_del(sdp->cdev);
                sdp->cdev = NULL;
-               devfs_remove("%s/generic", scsidp->devfs_name);
                put_disk(sdp->disk);
                sdp->disk = NULL;
                if (NULL == sdp->headfp)
@@@ -1548,6 -1569,7 +1540,7 @@@ MODULE_AUTHOR("Douglas Gilbert")
  MODULE_DESCRIPTION("SCSI generic (sg) driver");
  MODULE_LICENSE("GPL");
  MODULE_VERSION(SG_VERSION_STR);
+ MODULE_ALIAS_CHARDEV_MAJOR(SCSI_GENERIC_MAJOR);
  
  MODULE_PARM_DESC(def_reserved_size, "size of buffer reserved for each fd");
  MODULE_PARM_DESC(allow_dio, "allow direct I/O (default: 0 (disallow))");
@@@ -2366,6 -2388,8 +2359,6 @@@ __sg_remove_sfp(Sg_device * sdp, Sg_fd 
                SCSI_LOG_TIMEOUT(6, 
                        printk("__sg_remove_sfp:    bufflen=%d, k_use_sg=%d\n",
                        (int) sfp->reserve.bufflen, (int) sfp->reserve.k_use_sg));
 -              if (sfp->mmap_called)
 -                      sg_rb_correct4mmap(&sfp->reserve, 0);   /* undo correction */
                sg_remove_scat(&sfp->reserve);
        }
        sfp->parentdp = NULL;
@@@ -2447,9 -2471,9 +2440,9 @@@ sg_page_malloc(int rqSz, int lowDma, in
                return resp;
  
        if (lowDma)
 -              page_mask = GFP_ATOMIC | GFP_DMA | __GFP_NOWARN;
 +              page_mask = GFP_ATOMIC | GFP_DMA | __GFP_COMP | __GFP_NOWARN;
        else
 -              page_mask = GFP_ATOMIC | __GFP_NOWARN;
 +              page_mask = GFP_ATOMIC | __GFP_COMP | __GFP_NOWARN;
  
        for (order = 0, a_size = PAGE_SIZE; a_size < rqSz;
             order++, a_size <<= 1) ;
@@@ -2943,4 -2967,3 +2936,3 @@@ static int sg_proc_seq_show_debug(struc
  
  module_init(init_sg);
  module_exit(exit_sg);
- MODULE_ALIAS_CHARDEV_MAJOR(SCSI_GENERIC_MAJOR);