1. 10 Jan, 2012 1 commit
    • Sarah Sharp's avatar
      xhci: Fix USB 3.0 device restart on resume. · d0cd5d48
      Sarah Sharp authored
      The xHCI hub port code gets passed a zero-based port number by the USB
      core.  It then adds one to in order to find a device slot by port number
      and device speed by calling xhci_find_slot_id_by_port.  That function
      clearly states it requires a one-based port number.  The xHCI port
      status change event handler was using a zero-based port number that it
      got from find_faked_portnum_from_hw_portnum, not a one-based port
      number.  This lead to the doorbells never being rung for a device after
      a resume, or worse, a different device with the same speed having its
      doorbell rung (which could lead to bad power management in the xHCI host
      controller).
      
      This patch should be backported to kernels as old as 2.6.39.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Acked-by: default avatarAndiry Xu <andiry.xu@amd.com>
      Cc: stable@vger.kernel.org
      d0cd5d48
  2. 09 Jan, 2012 29 commits
    • Linus Torvalds's avatar
      Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · 6b3da11b
      Linus Torvalds authored
      * 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: Remove irqsafe_cpu_xxx variants
      
      Fix up conflict in arch/x86/include/asm/percpu.h due to clash with
      cebef5be ("x86: Fix and improve percpu_cmpxchg{8,16}b_double()")
      which edited the (now removed) irqsafe_cpu_cmpxchg*_double code.
      6b3da11b
    • Linus Torvalds's avatar
      Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · db0c2bf6
      Linus Torvalds authored
      * 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (21 commits)
        cgroup: fix to allow mounting a hierarchy by name
        cgroup: move assignement out of condition in cgroup_attach_proc()
        cgroup: Remove task_lock() from cgroup_post_fork()
        cgroup: add sparse annotation to cgroup_iter_start() and cgroup_iter_end()
        cgroup: mark cgroup_rmdir_waitq and cgroup_attach_proc() as static
        cgroup: only need to check oldcgrp==newgrp once
        cgroup: remove redundant get/put of task struct
        cgroup: remove redundant get/put of old css_set from migrate
        cgroup: Remove unnecessary task_lock before fetching css_set on migration
        cgroup: Drop task_lock(parent) on cgroup_fork()
        cgroups: remove redundant get/put of css_set from css_set_check_fetched()
        resource cgroups: remove bogus cast
        cgroup: kill subsys->can_attach_task(), pre_attach() and attach_task()
        cgroup, cpuset: don't use ss->pre_attach()
        cgroup: don't use subsys->can_attach_task() or ->attach_task()
        cgroup: introduce cgroup_taskset and use it in subsys->can_attach(), cancel_attach() and attach()
        cgroup: improve old cgroup handling in cgroup_attach_proc()
        cgroup: always lock threadgroup during migration
        threadgroup: extend threadgroup_lock() to cover exit and exec
        threadgroup: rename signal->threadgroup_fork_lock to ->group_rwsem
        ...
      
      Fix up conflict in kernel/cgroup.c due to commit e0197aae: "cgroups:
      fix a css_set not found bug in cgroup_attach_proc" that already
      mentioned that the bug is fixed (differently) in Tejun's cgroup
      patchset. This one, in other words.
      db0c2bf6
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · ac69e092
      Linus Torvalds authored
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2/3/4: delete unneeded includes of module.h
        ext{3,4}: Fix potential race when setversion ioctl updates inode
        udf: Mark LVID buffer as uptodate before marking it dirty
        ext3: Don't warn from writepage when readonly inode is spotted after error
        jbd: Remove j_barrier mutex
        reiserfs: Force inode evictions before umount to avoid crash
        reiserfs: Fix quota mount option parsing
        udf: Treat symlink component of type 2 as /
        udf: Fix deadlock when converting file from in-ICB one to normal one
        udf: Cleanup calling convention of inode_getblk()
        ext2: Fix error handling on inode bitmap corruption
        ext3: Fix error handling on inode bitmap corruption
        ext3: replace ll_rw_block with other functions
        ext3: NULL dereference in ext3_evict_inode()
        jbd: clear revoked flag on buffers before a new transaction started
        ext3: call ext3_mark_recovery_complete() when recovery is really needed
      ac69e092
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd · 9e203936
      Linus Torvalds authored
      * 'for-linus' of git://git.open-osd.org/linux-open-osd:
        ore: Must support none-PAGE-aligned IO
        ore: fix BUG_ON, too few sgs when reading
        ore: Fix crash in case of an IO error.
        ore: FIX breakage when MISC_FILESYSTEMS is not set
      9e203936
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs · 993ecff8
      Linus Torvalds authored
      * 'for-linus' of git://oss.sgi.com/xfs/xfs:
        xfs: fix endian conversion issue in discard code
      993ecff8
    • Linus Torvalds's avatar
      Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 12e55508
      Linus Torvalds authored
      * 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (466 commits)
        net/hyperv: Add support for jumbo frame up to 64KB
        net/hyperv: Add NETVSP protocol version negotiation
        net/hyperv: Remove unnecessary kmap_atomic in netvsc driver
        staging/rtl8192e: Register against lib80211
        staging/rtl8192e: Convert to lib80211_crypt_info
        staging/rtl8192e: Convert to lib80211_crypt_data and lib80211_crypt_ops
        staging/rtl8192e: Add lib80211.h to rtllib.h
        staging/mei: add watchdog device registration wrappers
        drm/omap: GEM, deal with cache
        staging: vt6656: int.c, int.h: Change return of function to void
        staging: usbip: removed unused definitions from header
        staging: usbip: removed dead code from receive function
        staging:iio: Drop {mark,unmark}_in_use callbacks
        staging:iio: Drop buffer mark_param_change callback
        staging:iio: Drop the unused buffer enable() and is_enabled() callbacks
        staging:iio: Drop buffer busy flag
        staging:iio: Make sure a device is only opened once at a time
        staging:iio: Disallow modifying buffer size when buffer is enabled
        staging:iio: Disallow changing scan elements in all buffered modes
        staging:iio: Use iio_buffer_enabled instead of open coding it
        ...
      
      Fix up conflict in drivers/staging/iio/adc/ad799x_core.c (removal of
      module_init due to using module_i2c_driver() helper, next to removal of
      MODULE_ALIAS due to using MODULE_DEVICE_TABLE instead).
      12e55508
    • Linus Torvalds's avatar
      Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 55b81e6f
      Linus Torvalds authored
      * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (232 commits)
        USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c
        xhci: Clean up 32-bit build warnings.
        USB: update documentation for usbmon
        usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops
        drivers/usb/class/cdc-acm.c: clear dangling pointer
        drivers/usb/dwc3/dwc3-pci.c: introduce missing kfree
        drivers/usb/host/isp1760-if.c: introduce missing kfree
        usb: option: add ZD Incorporated HSPA modem
        usb: ch9: fix up MaxStreams helper
        USB: usb-skeleton.c: cleanup open_count
        USB: usb-skeleton.c: fix open/disconnect race
        xhci: Properly handle COMP_2ND_BW_ERR
        USB: remove dead code from suspend/resume path
        USB: add quirk for another camera
        drivers: usb: wusbcore: Fix dependency for USB_WUSB
        xhci: Better debugging for critical host errors.
        xhci: Be less verbose during URB cancellation.
        xhci: Remove debugging about ring structure allocation.
        xhci: Remove debugging about toggling cycle bits.
        xhci: Remove debugging for individual transfers.
        ...
      55b81e6f
    • Linus Torvalds's avatar
      Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 5983faf9
      Linus Torvalds authored
      * 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (65 commits)
        tty: serial: imx: move del_timer_sync() to avoid potential deadlock
        imx: add polled io uart methods
        imx: Add save/restore functions for UART control regs
        serial/imx: let probing fail for the dt case without a valid alias
        serial/imx: propagate error from of_alias_get_id instead of using -ENODEV
        tty: serial: imx: Allow UART to be a source for wakeup
        serial: driver for m32 arch should not have DEC alpha errata
        serial/documentation: fix documented name of DCD cpp symbol
        atmel_serial: fix spinlock lockup in RS485 code
        tty: Fix memory leak in virtual console when enable unicode translation
        serial: use DIV_ROUND_CLOSEST instead of open coding it
        serial: add support for 400 and 800 v3 series Titan cards
        serial: bfin-uart: Remove ASYNC_CTS_FLOW flag for hardware automatic CTS.
        serial: bfin-uart: Enable hardware automatic CTS only when CTS pin is available.
        serial: make FSL errata depend on 8250_CONSOLE, not just 8250
        serial: add irq handler for Freescale 16550 errata.
        serial: manually inline serial8250_handle_port
        serial: make 8250 timeout use the specified IRQ handler
        serial: export the key functions for an 8250 IRQ handler
        serial: clean up parameter passing for 8250 Rx IRQ handling
        ...
      5983faf9
    • Linus Torvalds's avatar
      Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 21a2cb56
      Linus Torvalds authored
      * 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        isl29020: Remove a redundant semi-colon from return statement
        BMP085: Remove redundant semi-colon from return statement
        drivers:misc: ti-st: DEBUG uart, baud rate mods
        drivers:misc: ti-st: flush UART upon fw failure
        drivers:misc: ti-st: protect registrations
        char_dev.c: fix up some whitespace errors
        s390: tape_class.h: remove kobj_map.h inclusion
        misc: ad525x_dpot: Add support for SPI module device table matching
      21a2cb56
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · c99516ca
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        ext[34]: avoid i_nlink warnings triggered by drop_nlink/inc_nlink kludge in symlink()
        exofs: oops after late failure in mount
        devpts: fix double-free on mount failure
        ... and the same for gadgetfs
        functionfs: unfuck failure exits on mount
      c99516ca
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 72f31889
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (31 commits)
        [S390] disassembler: mark exception causing instructions
        [S390] Enable exception traces by default
        [S390] return address of compat signals
        [S390] sysctl: get rid of dead declaration
        [S390] dasd: fix fixpoint divide exception in define_extent
        [S390] dasd: add sanity check to detect path connection error
        [S390] qdio: fix kernel panic for zfcp 31-bit
        [S390] Add s390x description to Documentation/kdump/kdump.txt
        [S390] Add VMCOREINFO_SYMBOL(high_memory) to vmcoreinfo
        [S390] dasd: fix expiration handling for recovery requests
        [S390] outstanding interrupts vs. smp_send_stop
        [S390] ipc: call generic sys_ipc demultiplexer
        [S390] zcrypt: Fix error return codes.
        [S390] zcrypt: Rework length parameter checking.
        [S390] cleanup trap handling
        [S390] Remove Kerntypes leftovers
        [S390] topology: increase poll frequency if change is anticipated
        [S390] entry[64].S improvements
        [S390] make arch/s390 subdirectories depend on config option
        [S390] kvm: move cmf host id constant out of lowcore
        ...
      
      Fix up conflicts in arch/s390/kernel/{smp.c,topology.c} due to the
      sysdev removal clashing with "topology: get rid of ifdefs" which moved
      some of that code around.
      72f31889
    • Paul Gortmaker's avatar
      ext2/3/4: delete unneeded includes of module.h · 302bf2f3
      Paul Gortmaker authored
      Delete any instances of include module.h that were not strictly
      required.  In the case of ext2, the declaration of MODULE_LICENSE
      etc. were in inode.c but the module_init/exit were in super.c, so
      relocate the MODULE_LICENCE/AUTHOR block to super.c which makes it
      consistent with ext3 and ext4 at the same time.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      302bf2f3
    • Djalal Harouni's avatar
      ext{3,4}: Fix potential race when setversion ioctl updates inode · 6c2155b9
      Djalal Harouni authored
      The EXT{3,4}_IOC_SETVERSION ioctl() updates i_ctime and i_generation
      without i_mutex. This can lead to a race with the other operations that
      update i_ctime. This is not a big issue but let's make the ioctl consistent
      with how we handle e.g. other timestamp updates and use i_mutex to protect
      inode changes.
      Signed-off-by: default avatarDjalal Harouni <tixxdz@opendz.org>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      6c2155b9
    • Jan Kara's avatar
      udf: Mark LVID buffer as uptodate before marking it dirty · 853a0c25
      Jan Kara authored
      When we hit EIO while writing LVID, the buffer uptodate bit is cleared.
      This then results in an anoying warning from mark_buffer_dirty() when we
      write the buffer again. So just set uptodate flag unconditionally.
      Reviewed-by: default avatarNamjae Jeon <linkinjeon@gmail.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      853a0c25
    • Jan Kara's avatar
      ext3: Don't warn from writepage when readonly inode is spotted after error · 33c104d4
      Jan Kara authored
      WARN_ON_ONCE(IS_RDONLY(inode)) tends to trip when filesystem hits error and is
      remounted read-only. This unnecessarily scares users (well, they should be
      scared because of filesystem error, but the stack trace distracts them from the
      right source of their fear ;-). We could as well just remove the WARN_ON but
      it's not hard to fix it to not trip on filesystem with errors and not use more
      cycles in the common case so that's what we do.
      
      CC: stable@kernel.org
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      33c104d4
    • Jan Kara's avatar
      jbd: Remove j_barrier mutex · 00482785
      Jan Kara authored
      j_barrier mutex is used for serializing different journal lock operations.  The
      problem with it is that e.g. FIFREEZE ioctl results in process leaving kernel
      with j_barrier mutex held which makes lockdep freak out. Also hibernation code
      wants to freeze filesystem but it cannot do so because it then cannot hibernate
      the system because of mutex being locked.
      
      So we remove j_barrier mutex and use direct wait on j_barrier_count instead.
      Since locking journal is a rare operation we don't have to care about fairness
      or such things.
      
      CC: Andrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarJoel Becker <jlbec@evilplan.org>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      00482785
    • Jeff Mahoney's avatar
      reiserfs: Force inode evictions before umount to avoid crash · a9e36da6
      Jeff Mahoney authored
      This patch fixes a crash in reiserfs_delete_xattrs during umount.
      
      When shrink_dcache_for_umount clears the dcache from
      generic_shutdown_super, delayed evictions are forced to disk. If an
      evicted inode has extended attributes associated with it, it will
      need to walk the xattr tree to locate and remove them.
      
      But since shrink_dcache_for_umount will BUG if it encounters active
      dentries, the xattr tree must be released before it's called or it will
      crash during every umount.
      
      This patch forces the evictions to occur before generic_shutdown_super
      by calling shrink_dcache_sb first. The additional evictions caused
      by the removal of each associated xattr file and dir will be automatically
      handled as they're added to the LRU list.
      
      CC: reiserfs-devel@vger.kernel.org
      CC: stable@kernel.org
      Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      a9e36da6
    • Jan Kara's avatar
      reiserfs: Fix quota mount option parsing · a06d789b
      Jan Kara authored
      When jqfmt mount option is not specified on remount, we mistakenly clear
      s_jquota_fmt value stored in superblock. Fix the problem.
      
      CC: stable@kernel.org
      CC: reiserfs-devel@vger.kernel.org
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      a06d789b
    • Jan Kara's avatar
      udf: Treat symlink component of type 2 as / · fef2e9f3
      Jan Kara authored
      Currently, we ignore symlink component of type 2. But mkisofs and other OS'
      seem to treat it as / so do the same for compatibility.
      Reported-by: default avatar"Gábor S." <otnaccess@hotmail.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      fef2e9f3
    • Jan Kara's avatar
      udf: Fix deadlock when converting file from in-ICB one to normal one · d2eb8c35
      Jan Kara authored
      During BKL removal in 2.6.38, conversion of files from in-ICB format to normal
      format got broken. We call ->writepage with i_data_sem held but udf_get_block()
      also acquires i_data_sem thus creating A-A deadlock.
      
      We fix the problem by dropping i_data_sem before calling ->writepage() which is
      safe since i_mutex still protects us against any changes in the file. Also fix
      pagelock - i_data_sem lock inversion in udf_expand_file_adinicb() by dropping
      i_data_sem before calling find_or_create_page().
      
      CC: stable@kernel.org
      Reported-by: default avatarMatthias Matiak <netzpython@mail-on.us>
      Tested-by: default avatarMatthias Matiak <netzpython@mail-on.us>
      Reviewed-by: default avatarNamjae Jeon <linkinjeon@gmail.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      d2eb8c35
    • Jan Kara's avatar
      udf: Cleanup calling convention of inode_getblk() · 7b0b0933
      Jan Kara authored
      inode_getblk() always returned NULL and passed results in its parameters.
      Make the function return something useful - found block number.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      7b0b0933
    • Jan Kara's avatar
      ext2: Fix error handling on inode bitmap corruption · ef6919c2
      Jan Kara authored
      When insert_inode_locked() fails in ext2_new_inode() it most likely means inode
      bitmap got corrupted and we allocated again inode which is already in use. Also
      doing unlock_new_inode() during error recovery is wrong since the inode does
      not have I_NEW set. Fix the problem by informing about filesystem error and
      jumping to fail: (instead of fail_drop:) which doesn't call unlock_new_inode().
      Reviewed-by: default avatarEric Sandeen <sandeen@redhat.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      ef6919c2
    • Jan Kara's avatar
      ext3: Fix error handling on inode bitmap corruption · 1415dd87
      Jan Kara authored
      When insert_inode_locked() fails in ext3_new_inode() it most likely
      means inode bitmap got corrupted and we allocated again inode which
      is already in use. Also doing unlock_new_inode() during error recovery
      is wrong since inode does not have I_NEW set. Fix the problem by jumping
      to fail: (instead of fail_drop:) which declares filesystem error and
      does not call unlock_new_inode().
      Reviewed-by: default avatarEric Sandeen <sandeen@redhat.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      1415dd87
    • Zheng Liu's avatar
      ext3: replace ll_rw_block with other functions · d03e1292
      Zheng Liu authored
      ll_rw_block() is deprecated. Thus we replace it with other functions.
      
      CC: Jan Kara <jack@suse.cz>
      Signed-off-by: default avatarZheng Liu <wenqing.lz@taobao.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      d03e1292
    • Al Viro's avatar
      ext[34]: avoid i_nlink warnings triggered by drop_nlink/inc_nlink kludge in symlink() · 0ce8c010
      Al Viro authored
      Both ext3 and ext4 put the half-created symlink inode into the orphan list
      for a while (see the comment in ext[34]_symlink() for gory details).  Then,
      if everything went fine, they pull it out of the orphan list and bump the
      link count back to 1.  The thing is, inc_nlink() is going to complain about
      seeing somebody changing i_nlink from 0 to 1.  With a good reason, since
      normally something like that is a bug.  Explicit set_nlink(inode, 1) does
      the same thing as inc_nlink() here, but it does *not* complain - exactly
      because it should be usable in strange situations like this one.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      0ce8c010
    • Al Viro's avatar
      exofs: oops after late failure in mount · da01636a
      Al Viro authored
      We have already set ->s_root, so ->put_super() is going to be called.
      Freeing ->s_fs_info is a bloody bad idea when it's going to be
      dereferenced very shortly...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      da01636a
    • Al Viro's avatar
      devpts: fix double-free on mount failure · 3850aba7
      Al Viro authored
      devpts_kill_sb() is called even if devpts_fill_super() fails;
      we should not do that kfree() in the latter, especially not
      with ->s_fs_info left pointing to freed object.  Double kfree()
      is a Bad Thing(tm)...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3850aba7
    • Al Viro's avatar
      ... and the same for gadgetfs · 87da5b32
      Al Viro authored
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      87da5b32
    • Al Viro's avatar
      functionfs: unfuck failure exits on mount · 5b5f9560
      Al Viro authored
      * if you do dput() of root dentry, do *not* follow that with iput() of root
      inode.
      * while we are at it, don't do that dput() at all - you are leaving the pointer
      in ->s_root and your ->kill_sb() will be very unhappy with that.  It will do
      proper dput(), though, so the easiest way is to leave that to it entirely.
      * freeing ->s_fs_info is also best left to ->kill_sb() (which will do it
      anyway), especially since we leave the pointer in place.
      * that xchg() in ->kill_sb() is not a bug per se, but it's a plain and simple
      masturbation with fewer excuses than Onan had...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      5b5f9560
  3. 08 Jan, 2012 10 commits
    • Jesper Juhl's avatar
      audit: always follow va_copy() with va_end() · a0e86bd4
      Jesper Juhl authored
      A call to va_copy() should always be followed by a call to va_end() in
      the same function.  In kernel/autit.c::audit_log_vformat() this is not
      always done.  This patch makes sure va_end() is always called.
      Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a0e86bd4
    • Jesper Juhl's avatar
      drivers/scsi/aacraid/commctrl.c: fix mem leak in aac_send_raw_srb() · 7dd72f51
      Jesper Juhl authored
      We leak in drivers/scsi/aacraid/commctrl.c::aac_send_raw_srb() :
      
      We allocate memory:
      
      	...
      	struct user_sgmap* usg;
      	usg = kmalloc(actual_fibsize - sizeof(struct aac_srb)
      	  + sizeof(struct sgmap), GFP_KERNEL);
      
      and then neglect to free it:
      
      	...
      	for (i = 0; i < usg->count; i++) {
      		u64 addr;
      		void* p;
      		if (usg->sg[i].count >
      		    ((dev->adapter_info.options &
      		     AAC_OPT_NEW_COMM) ?
      		      (dev->scsi_host_ptr->max_sectors << 9) :
      		      65536)) {
      			rcode = -EINVAL;
      			goto cleanup;
      	... this 'goto' makes 'usg' go out of scope and leak the memory we
      	    allocated.
      
      Other exits properly kfree(usg), it's just here it is neglected.
      Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7dd72f51
    • Linus Torvalds's avatar
      Merge tag 'infiniband-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 48fa57ac
      Linus Torvalds authored
      infiniband changes for 3.3 merge window
      
      * tag 'infiniband-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        rdma/core: Fix sparse warnings
        RDMA/cma: Fix endianness bugs
        RDMA/nes: Fix terminate during AE
        RDMA/nes: Make unnecessarily global nes_set_pau() static
        RDMA/nes: Change MDIO bus clock to 2.5MHz
        IB/cm: Fix layout of APR message
        IB/mlx4: Fix SL to 802.1Q priority-bits mapping for IBoE
        IB/qib: Default some module parameters optimally
        IB/qib: Optimize locking for get_txreq()
        IB/qib: Fix a possible data corruption when receiving packets
        IB/qib: Eliminate 64-bit jiffies use
        IB/qib: Fix style issues
        IB/uverbs: Protect QP multicast list
      48fa57ac
    • Linus Torvalds's avatar
      Merge branch 'dma-buf-merge' of git://people.freedesktop.org/~airlied/linux · 8e369672
      Linus Torvalds authored
      * 'dma-buf-merge' of git://people.freedesktop.org/~airlied/linux:
        dma-buf: mark EXPERIMENTAL for 1st release.
        dma-buf: Documentation for buffer sharing framework
        dma-buf: Introduce dma buffer sharing mechanism
      8e369672
    • Linus Torvalds's avatar
      Merge branch 'hwmon-for-linus' of... · 6950d76c
      Linus Torvalds authored
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        max1111.c: fix checkpatch warning
        hwmon: (lm75) fix checkpatch warnings
        hwmon: (lm80) fix checkpatch messages
        hwmon: replaced strict_str* with kstr*
        hwmon: (lm75) fix checkpatch warning
        hwmon: (lm75) added error handling
        hwmon: (ltc4261) set data->valid to 0 if error
        hwmon: (f75375s) Add support for F75387SG/RG
        hwmon: (f75375s) Disable setting DC fan control mode for F75373
        hwmon: (f75375s) Initialize pwmX_mode and pwmX_enable if there is no platform data
        hwmon: (f75375s) Fix value range for PWM modes
        hwmon: (f75375s) Use standard sysfs attribute names
        hwmon: (f75375s) Fix checkpatch errors and warnings
        hwmon: (pmbus/zl6100) Only instantiate external temperature sensor if enabled
        hwmon: (pmbus/zl6100) Add support for Ericsson BMR45[0,1] and BMR46[2,3,4]
        hwmon: (pmbus/zl6100) Add support for ZL2005
        hwmon: (pmbus/adm1275) Validate device ID
      6950d76c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · b7d845f8
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (36 commits)
        mfd: Clearing events requires event registers to be writable for da9052-core
        mfd: Fix annotations in da9052-core
        gpiolib: Mark da9052 driver broken
        mfd: Declare da9052_regmap_config for the bus drivers
        MFD: DA9052/53 MFD core module add SPI support v2
        MFD: DA9052/53 MFD core module
        regmap: Add irq_base accessor to regmap_irq
        regmap: Allow drivers to reinitialise the register cache at runtime
        regmap: Add trace event for successful cache reads
        regmap: Allow regmap_update_bits() users to detect changes
        regmap: Report if we actually handled an interrupt in regmap-irq
        regmap: Fix rbtreee build when not using debugfs
        regmap: Provide debugfs dump of the rbtree cache data
        regmap: Do debugfs init before cache init
        regmap: Suppress noop writes in regmap_update_bits()
        regmap: Remove indexed cache type
        regmap: Drop check whether a register is readable in regcache_read
        regmap: Properly round cache_word_size
        regmap: Add support for 10/14 register formating
        regmap: Try cached read before checking if a hardware read is possible
        ...
      b7d845f8
    • Linus Torvalds's avatar
      Merge tag 'md-3.3' of git://neil.brown.name/md · 2943c833
      Linus Torvalds authored
      md update for 3.3
      
      Big change is new hot-replacement.
      A slot in an array can hold 2 devices - one that
      wants-replacement and one that is the replacement.
      Once the replacement is built - either from the
      original or (in the case of errors) from elsewhere,
      the wants-replacement device will be removed.
      
      * tag 'md-3.3' of git://neil.brown.name/md: (36 commits)
        md/raid1: Mark device want_replacement when we see a write error.
        md/raid1: If there is a spare and a want_replacement device, start replacement.
        md/raid1: recognise replacements when assembling arrays.
        md/raid1: handle activation of replacement device when recovery completes.
        md/raid1: Allow a failed replacement device to be removed.
        md/raid1: Allocate spare to store replacement devices and their bios.
        md/raid1:  Replace use of mddev->raid_disks with conf->raid_disks.
        md/raid10: If there is a spare and a want_replacement device, start replacement.
        md/raid10: recognise replacements when assembling array.
        md/raid10: Allow replacement device to be replace old drive.
        md/raid10: handle recovery of replacement devices.
        md/raid10:  Handle replacement devices during resync.
        md/raid10: writes should get directed to replacement as well as original.
        md/raid10: allow removal of failed replacement devices.
        md/raid10: preferentially read from replacement device if possible.
        md/raid10:  change read_balance to return an rdev
        md/raid10: prepare data structures for handling replacement.
        md/raid5: Mark device want_replacement when we see a write error.
        md/raid5: If there is a spare and a want_replacement device, start replacement.
        md/raid5: recognise replacements when assembling array.
        ...
      2943c833
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 98793265
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)
        Kconfig: acpi: Fix typo in comment.
        misc latin1 to utf8 conversions
        devres: Fix a typo in devm_kfree comment
        btrfs: free-space-cache.c: remove extra semicolon.
        fat: Spelling s/obsolate/obsolete/g
        SCSI, pmcraid: Fix spelling error in a pmcraid_err() call
        tools/power turbostat: update fields in manpage
        mac80211: drop spelling fix
        types.h: fix comment spelling for 'architectures'
        typo fixes: aera -> area, exntension -> extension
        devices.txt: Fix typo of 'VMware'.
        sis900: Fix enum typo 'sis900_rx_bufer_status'
        decompress_bunzip2: remove invalid vi modeline
        treewide: Fix comment and string typo 'bufer'
        hyper-v: Update MAINTAINERS
        treewide: Fix typos in various parts of the kernel, and fix some comments.
        clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR
        gpio: Kconfig: drop unknown symbol 'CS5535_GPIO'
        leds: Kconfig: Fix typo 'D2NET_V2'
        sound: Kconfig: drop unknown symbol ARCH_CLPS7500
        ...
      
      Fix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new
      kconfig additions, close to removed commented-out old ones)
      98793265
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm · b4a133da
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm:
        x86: Kconfig: drop unknown symbol 'APM_MODULE'
      b4a133da
    • Linus Torvalds's avatar
      Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · eb59c505
      Linus Torvalds authored
      * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)
        PM / Hibernate: Implement compat_ioctl for /dev/snapshot
        PM / Freezer: fix return value of freezable_schedule_timeout_killable()
        PM / shmobile: Allow the A4R domain to be turned off at run time
        PM / input / touchscreen: Make st1232 use device PM QoS constraints
        PM / QoS: Introduce dev_pm_qos_add_ancestor_request()
        PM / shmobile: Remove the stay_on flag from SH7372's PM domains
        PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume
        PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode
        PM: Drop generic_subsys_pm_ops
        PM / Sleep: Remove forward-only callbacks from AMBA bus type
        PM / Sleep: Remove forward-only callbacks from platform bus type
        PM: Run the driver callback directly if the subsystem one is not there
        PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers
        PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.
        PM / Sleep: Merge internal functions in generic_ops.c
        PM / Sleep: Simplify generic system suspend callbacks
        PM / Hibernate: Remove deprecated hibernation snapshot ioctls
        PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()
        ARM: S3C64XX: Implement basic power domain support
        PM / shmobile: Use common always on power domain governor
        ...
      
      Fix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused
      XBT_FORCE_SLEEP bit
      eb59c505