1. 25 Feb, 2012 4 commits
    • Linus Torvalds's avatar
      Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 1e73fde5
      Linus Torvalds authored
      three kbuild fixes for 3.3:
       - make deb-pkg symlink race fix.
       - make coccicheck fix.
       - Dropping the check for modutils.  This is not a regression, but
         allows the module-init-tools replacement kmod work with the 3.3
         kernel.
      
      * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        coccicheck: change handling of C={1,2} when M= is set
        builddeb: Don't create files in /tmp with predictable names
        kbuild: do not check for ancient modutils tools
      1e73fde5
    • Ian Kent's avatar
      autofs: work around unhappy compat problem on x86-64 · a32744d4
      Ian Kent authored
      When the autofs protocol version 5 packet type was added in commit
      5c0a32fc ("autofs4: add new packet type for v5 communications"), it
      obvously tried quite hard to be word-size agnostic, and uses explicitly
      sized fields that are all correctly aligned.
      
      However, with the final "char name[NAME_MAX+1]" array at the end, the
      actual size of the structure ends up being not very well defined:
      because the struct isn't marked 'packed', doing a "sizeof()" on it will
      align the size of the struct up to the biggest alignment of the members
      it has.
      
      And despite all the members being the same, the alignment of them is
      different: a "__u64" has 4-byte alignment on x86-32, but native 8-byte
      alignment on x86-64.  And while 'NAME_MAX+1' ends up being a nice round
      number (256), the name[] array starts out a 4-byte aligned.
      
      End result: the "packed" size of the structure is 300 bytes: 4-byte, but
      not 8-byte aligned.
      
      As a result, despite all the fields being in the same place on all
      architectures, sizeof() will round up that size to 304 bytes on
      architectures that have 8-byte alignment for u64.
      
      Note that this is *not* a problem for 32-bit compat mode on POWER, since
      there __u64 is 8-byte aligned even in 32-bit mode.  But on x86, 32-bit
      and 64-bit alignment is different for 64-bit entities, and as a result
      the structure that has exactly the same layout has different sizes.
      
      So on x86-64, but no other architecture, we will just subtract 4 from
      the size of the structure when running in a compat task.  That way we
      will write the properly sized packet that user mode expects.
      
      Not pretty.  Sadly, this very subtle, and unnecessary, size difference
      has been encoded in user space that wants to read packets of *exactly*
      the right size, and will refuse to touch anything else.
      Reported-and-tested-by: default avatarThomas Meyer <thomas@m3y3r.de>
      Signed-off-by: default avatarIan Kent <raven@themaw.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a32744d4
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · b52b8002
      Linus Torvalds authored
      One InfiniBand/RDMA regression fix for 3.3:
      
       - mlx4 SR-IOV changes added static exported functions, which doesn't
         build on powerpc at least.  Fix from Doug Ledford for this.
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        mlx4_core: Exported functions can't be static
      b52b8002
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 · 16bca1d5
      Linus Torvalds authored
      SCSI fixes on 20120224:
       "This is a set of assorted bug fixes for power management, mpt2sas,
        ipr, the rdac device handler and quite a big chunk for qla2xxx (plus a
        use after free of scsi_host in scsi_scan.c). "
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
        [SCSI] scsi_dh_rdac: Fix for unbalanced reference count
        [SCSI] scsi_pm: Fix bug in the SCSI power management handler
        [SCSI] scsi_scan: Fix 'Poison overwritten' warning caused by using freed 'shost'
        [SCSI] qla2xxx: Update version number to 8.03.07.13-k.
        [SCSI] qla2xxx: Proper detection of firmware abort error code for ISP82xx.
        [SCSI] qla2xxx: Remove resetting memory during device initialization for ISP82xx.
        [SCSI] qla2xxx: Complete mailbox command timedout to avoid initialization failures during next reset cycle.
        [SCSI] qla2xxx: Remove check for null fcport from host reset handler.
        [SCSI] qla2xxx: Correct out of bounds read of ISP2200 mailbox registers.
        [SCSI] qla2xxx: Remove errant clearing of MBX_INTERRUPT flag during CT-IOCB processing.
        [SCSI] qla2xxx: Clear options-flags while issuing stop-firmware mbx command.
        [SCSI] qla2xxx: Add an "is reset active" helper.
        [SCSI] qla2xxx: Add check for null fcport references in qla2xxx_queuecommand.
        [SCSI] qla2xxx: Propagate up abort failures.
        [SCSI] isci: Fix NULL ptr dereference when no firmware is being loaded
        [SCSI] ipr: fix eeh recovery for 64-bit adapters
        [SCSI] mpt2sas: Fix mismatch in mpt2sas_base_hard_reset_handler() mutex lock-unlock
      16bca1d5
  2. 24 Feb, 2012 21 commits
  3. 23 Feb, 2012 10 commits
    • Anton Altaparmakov's avatar
      Restore direct_io / truncate locking API · 37fbf4bf
      Anton Altaparmakov authored
      With kernel 3.1, Christoph removed i_alloc_sem and replaced it with
      calls (namely inode_dio_wait() and inode_dio_done()) which are
      EXPORT_SYMBOL_GPL() thus they cannot be used by non-GPL file systems and
      further inode_dio_wait() was pushed from notify_change() into the file
      system ->setattr() method but no non-GPL file system can make this call.
      
      That means non-GPL file systems cannot exist any more unless they do not
      use any VFS functionality related to reading/writing as far as I can
      tell or at least as long as they want to implement direct i/o.
      
      Both Linus and Al (and others) have said on LKML that this breakage of
      the VFS API should not have happened and that the change was simply
      missed as it was not documented in the change logs of the patches that
      did those changes.
      
      This patch changes the two function exports in question to be
      EXPORT_SYMBOL() thus restoring the VFS API as it used to be - accessible
      for all modules.
      
      Christoph, who introduced the two functions and exported them GPL-only
      is CC-ed on this patch to give him the opportunity to object to the
      symbols being changed in this manner if he did indeed intend them to be
      GPL-only and does not want them to become available to all modules.
      Signed-off-by: default avatarAnton Altaparmakov <anton@tuxera.com>
      CC: Christoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      37fbf4bf
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs · bb4c7e9a
      Linus Torvalds authored
      A fix from Jesper Juhl removes an assignment in an ASSERT when a compare
      is intended.  Two fixes from Mitsuo Hayasaka address off-by-ones in XFS
      quota enforcement.
      
      * 'for-linus' of git://oss.sgi.com/xfs/xfs:
        xfs: make inode quota check more general
        xfs: change available ranges of softlimit and hardlimit in quota check
        XFS: xfs_trans_add_item() - don't assign in ASSERT() when compare is intended
      bb4c7e9a
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 73c8e679
      Linus Torvalds authored
      BenH says:
       'Here are a few more powerpc bits for you.  A stupid regression I
        introduced with my previous commit to "fix" program check exceptions
        (brown paper bag for me), fix the cpuidle default, a bug fix for
        something that isn't strictly speaking a regression but some upstream
        changes causes it to show in lockdep now while it didn't before, and
        finally a trivial one for rusty to make his life easier later on
        removing the old cpumask cruft. '
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc: Fix various issues with return to userspace
        cpuidle: Default y on powerpc pSeries
        powerpc: Fix program check handling when lockdep is enabled
        powerpc: Remove references to cpu_*_map
      73c8e679
    • Linus Torvalds's avatar
      Merge tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 0200971d
      Linus Torvalds authored
      sound fixes for 3.3-rc5
      
      Just a collection of boring small fixes for ASoC, HD-audio Realtek
      and USB-audio drivers.
      
      * tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: snd-usb-caiaq: Fix the return of XRUN
        ASoC: ak4642: fixup HeadPhone L/R dapm settings
        ALSA: hda/realtek - Fix surround output regression on Acer Aspire 5935
        ALSA: hda/realtek - Fix overflow of vol/sw check bitmap
        ALSA: usb-audio: avoid integer overflow in create_fixed_stream_quirk()
        ASoC: wm8962: Fix sidetone enumeration texts
      0200971d
    • Liu Bo's avatar
      Btrfs: increase the global block reserve estimates · 5500cdbe
      Liu Bo authored
      When doing IO with large amounts of data fragmentation, the global block
      reserve calulations are too low.  This increases them to avoid
      ENOSPC crashes.
      Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      5500cdbe
    • Chris Mason's avatar
      Btrfs: clear the extent uptodate bits during parent transid failures · 50653190
      Chris Mason authored
      If btrfs reads a block and finds a parent transid mismatch, it clears
      the uptodate flags on the extent buffer, and the pages inside it.  But
      we only clear the uptodate bits in the state tree if the block straddles
      more than one page.
      
      This is from an old optimization from to reduce contention on the extent
      state tree.  But it is buggy because the code that retries a read from
      a different copy of the block is going to find the uptodate state bits
      set and skip the IO.
      
      The end result of the bug is that we'll never actually read the good
      copy (if there is one).
      
      The fix here is to always clear the uptodate state bits, which is safe
      because this code is only called when the parent transid fails.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      50653190
    • Chris Mason's avatar
    • Chris Mason's avatar
      Btrfs: make sure we update latest_bdev · a6b0d5c8
      Chris Mason authored
      When we are setting up the mount, we close all the
      devices that were not actually part of the metadata we found.
      
      But, we don't make sure that one of those devices wasn't
      fs_devices->latest_bdev, which means we can do a use after free
      on the one we closed.
      
      This updates latest_bdev as it goes.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      a6b0d5c8
    • Chris Mason's avatar
      Btrfs: improve error handling for btrfs_insert_dir_item callers · fe66a05a
      Chris Mason authored
      This allows us to gracefully continue if we aren't able to insert
      directory items, both for normal files/dirs and snapshots.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      fe66a05a
    • Doug Ledford's avatar
      mlx4_core: Exported functions can't be static · 22c8bff6
      Doug Ledford authored
      At least on powerpc, it breaks the build if exported functions are
      static.  Fix some static exported functions introduced with the mlx4
      SR-IOV support added in 3.3-rc1.
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      22c8bff6
  4. 22 Feb, 2012 5 commits
    • Linus Torvalds's avatar
      Merge tag 'usb-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 45196cee
      Linus Torvalds authored
      USB bugfixes for 3.3-rc4
      
      A number of new device ids, and a cleanup/fix for some of the option
      device ids that shouldn't have been added in the first place.
      
      There's also a few USB 3 fixes for problems that people have reported,
      and a usb-storage bugfix to round it out.
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      
      * tag 'usb-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: Added Kamstrup VID/PIDs to cp210x serial driver.
        USB: Serial: ti_usb_3410_5052: Add Abbot Diabetes Care cable id
        usb-storage: fix freezing of the scanning thread
        xhci: Fix encoding for HS bulk/control NAK rate.
        USB: Set hub depth after USB3 hub reset
        USB: Fix handoff when BIOS disables host PCI device.
        USB: option: cleanup zte 3g-dongle's pid in option.c
        USB: Don't fail USB3 probe on missing legacy PCI IRQ.
        xhci: Fix oops caused by more USB2 ports than USB3 ports.
        USB: Remove duplicate USB 3.0 hub feature #defines.
      45196cee
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · e2d4370b
      Linus Torvalds authored
      Intel, radeon, exynos fixes.
      
      Intel: fixes a few Ivybridge hangs, along with fixing RC6 on SNB (still
      not on, but at least allows for distros to patch it on easily).
      
      radeon: oops reading some files in debugfs that weren't meant to appear,
      a fix that touches a lot of files, so looks worse than it is, it fixes
      an oops if a GPU reset fails and userspace keeps submitting more data,
      along with a minor BIOS fix for newer boards.
      
      exynos: a group of fixes for exynos, they've sent me a few more but
      these were all I got through, and its no hw vanilla kernel users see a
      lot off yet.
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon/kms/atom: dpms bios scratch reg updates
        drm/radeon/kms: properly set accel working flag and bailout when false
        drm/radeon: Only create additional ring debugfs files on Cayman or newer.
        drm/exynos: added postclose to release resource.
        drm/exynos: removed exynos_drm_fbdev_recreate function.
        drm/exynos: fixed page flip issue.
        drm/exynos: added possible_clones setup function.
        drm/exynos: removed pageflip_event_list init code when closed.
        drm/exynos: changed priority of mixer layers.
        drm/exynos: Fix typo in exynos_mixer.c
        drm/i915: do not enable RC6p on Sandy Bridge
        drm/i915: gen7: Disable the RHWO optimization as it can cause GPU hangs.
        drm/i915: gen7: work around a system hang on IVB
        drm/i915: gen7: Implement an L3 caching workaround.
        drm/i915: gen7: implement rczunit workaround
      e2d4370b
    • Moger, Babu's avatar
      [SCSI] scsi_dh_rdac: Fix for unbalanced reference count · 3569e537
      Moger, Babu authored
      This patch fixes an unbalanced refcount issue.
      
      Elevating the lock for both kref_put and also for controller node deletion.
      Previously, controller deletion was protected but the not the kref_put. This
      was causing the other thread to pick up the controller structure which was
      already kref'd zero.
      
      This was causing the following WARN_ON and also sometimes panic.
      
      WARNING: at lib/kref.c:43 kref_get+0x2d/0x30() (Not tainted)
      Hardware name: IBM System x3655 -[7985AC1]-
      Modules linked in: fuse scsi_dh_rdac autofs4 nfs lockd fscache nfs_acl
      auth_rpcgss sunrpc 8021q garp stp llc ipv6 ib_srp(U) scsi_transport_srp
      scsi_tgt ib_cm(U) ib_sa(U) ib_uverbs(U) ib_umad(U) mlx4_ib(U) mlx4_core(U)
      ib_mthca(U) ib_mad(U) ib_core(U) dm_mirror dm_region_hash dm_log dm_round_robin
      dm_multipath uinput bnx2 ses enclosure sg ibmpex ibmaem ipmi_msghandler
      serio_raw k8temp hwmon amd64_edac_mod edac_core edac_mce_amd shpchp i2c_piix4
      ext4 mbcache jbd2 sr_mod cdrom sd_mod crc_t10dif sata_svw pata_acpi ata_generic
      pata_serverworks aacraid radeon ttm drm_kms_helper drm i2c_algo_bit i2c_core
      dm_mod [last unloaded: freq_table]
      Pid: 13735, comm: srp_daemon Not tainted 2.6.32-71.el6.x86_64 #1
      Call Trace:
      [<ffffffff8106b857>] warn_slowpath_common+0x87/0xc0
      [<ffffffff8106b8aa>] warn_slowpath_null+0x1a/0x20
      [<ffffffff8125c39d>] kref_get+0x2d/0x30
      [<ffffffffa01b4029>] rdac_bus_attach+0x459/0x580 [scsi_dh_rdac]
      [<ffffffff8135232a>] scsi_dh_handler_attach+0x2a/0x80
      [<ffffffff81352c7b>] scsi_dh_notifier+0x9b/0xa0
      [<ffffffff814cd7a5>] notifier_call_chain+0x55/0x80
      [<ffffffff8109711a>] __blocking_notifier_call_chain+0x5a/0x80
      [<ffffffff81097156>] blocking_notifier_call_chain+0x16/0x20
      [<ffffffff8132bec5>] device_add+0x515/0x640
      [<ffffffff813329e4>] ? attribute_container_device_trigger+0xc4/0xe0
      [<ffffffff8134f659>] scsi_sysfs_add_sdev+0x89/0x2c0
      [<ffffffff8134d096>] scsi_probe_and_add_lun+0xea6/0xed0
      [<ffffffff8134beb2>] ? scsi_alloc_target+0x292/0x2d0
      [<ffffffff8134d1e1>] __scsi_scan_target+0x121/0x750
      [<ffffffff811df806>] ? sysfs_create_file+0x26/0x30
      [<ffffffff8132b759>] ? device_create_file+0x19/0x20
      [<ffffffff81332838>] ? attribute_container_add_attrs+0x78/0x90
      [<ffffffff814b008c>] ? klist_next+0x4c/0xf0
      [<ffffffff81332e30>] ? transport_configure+0x0/0x20
      [<ffffffff813329e4>] ? attribute_container_device_trigger+0xc4/0xe0
      [<ffffffff8134df40>] scsi_scan_target+0xd0/0xe0
      [<ffffffffa02f053a>] srp_create_target+0x75a/0x890 [ib_srp]
      [<ffffffff8132a130>] dev_attr_store+0x20/0x30
      [<ffffffff811df145>] sysfs_write_file+0xe5/0x170
      [<ffffffff8116c818>] vfs_write+0xb8/0x1a0
      [<ffffffff810d40a2>] ? audit_syscall_entry+0x272/0x2a0
      [<ffffffff8116d251>] sys_write+0x51/0x90
      [<ffffffff81013172>] system_call_fastpath+0x16/0x1b
      Signed-off-by: default avatarBabu Moger <babu.moger@netapp.com>
      Acked-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      3569e537
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 71c01b9d
      Linus Torvalds authored
      It contains 3 important fixes for ColdFire based machines:
       - fix processes getting stuck when running from strace
       - fix kernel vmalloced pages not being visible in all kernel contexts
       - fix shared user pages sometimes being visible in another process
         context
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k: Do not set global share for non-kernel shared pages
        m68k: Add shared bit to Coldfire kernel page entries
        m68knommu: fix syscall tracing stuck process
      71c01b9d
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.3-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 437cf4c7
      Linus Torvalds authored
      Bugfixes for the NFS client.
      
      Fix a nasty Oops in the NFSv4 getacl code, another source of infinite
      loops in the NFSv4 state recovery code, and a regression in NFSv4.1
      session initialisation.
      
      Also deal with an NFSv4.1 memory leak.
      
      * tag 'nfs-for-3.3-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFSv4: fix server_scope memory leak
        NFSv4.1: Fix a NFSv4.1 session initialisation regression
        NFSv4: Ensure we throw out bad delegation stateids on NFS4ERR_BAD_STATEID
        NFSv4: Fix an Oops in the NFSv4 getacl code
      437cf4c7