03 Dec, 2016

4 commits

  • Ozgur Karatas reported that the very first entry in the CREDITS file had
    the wrong tag for name (M: instead of N: - it happened when moving the
    entry from the MAINTAINERS file, where 'M:' stands for "Maintainer").

    And when I went looking, I found a couple of other cases of wrong
    tagging too.

    Reported-by: Ozgur Karatas
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull KVM fixes from Radim Krčmář:
    "All architectures avoid memory corruption in an error path. ARM
    prevents bogus acknowledgement of interrupts"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: use after free in kvm_ioctl_create_device()
    KVM: arm/arm64: vgic: Don't notify EOI for non-SPIs

    Linus Torvalds
     
  • Pull i2c fix from Wolfram Sang:
    "Here is the revert for the regression of the i2c-octeon driver I
    mentioned last time. I wished for a bit more feedback, but all people
    working actively on it are in need of this patch, so here it goes"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    Revert "i2c: octeon: thunderx: Limit register access retries"

    Linus Torvalds
     
  • With binutils-2.26 and before, a weak missing symbol was kept during the
    final link, and a missing CRC for an export would lead to that CRC being
    treated as zero implicitly. With binutils-2.27, the crc symbol gets
    dropped, and any module trying to use it will fail to load.

    This sets the weak CRC symbol to zero explicitly, making it defined in
    vmlinux, which in turn lets us load the modules referring to that CRC.

    The comment above the __CRC_SYMBOL macro suggests that this was always
    the intention, although it also seems that all symbols defined in C have
    a correct CRC these days, and only the exports that are now done in
    assembly need this.

    Signed-off-by: Arnd Bergmann
    Tested-by: Adam Borowski
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

02 Dec, 2016

4 commits

  • Pull PCI fixes from Bjorn Helgaas:
    "PCI fixes:

    - Fix Read Completion Boundary setting, which fixes a boot failure on
    IBM x3850 with Mellanox MT27500 ConnectX-3

    - Update some MAINTAINERS entries and email addresses"

    * tag 'pci-v4.9-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: Set Read Completion Boundary to 128 iff Root Port supports it (_HPX)
    PCI: Export pcie_find_root_port
    PCI: designware-plat: Update author email
    PCI: designware: Change maintainer to Joao Pinto
    MAINTAINERS: Add devicetree binding to PCI i.MX6 entry
    MAINTAINERS: Update Richard Zhu's email address

    Linus Torvalds
     
  • Pull overlayfs fix from Miklos Szeredi:
    "This fixes a regression introduced in 4.8"

    * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    ovl: fix d_real() for stacked fs

    Linus Torvalds
     
  • Pull input fixes from Dmitry Torokhov: "We are disabling automatic
    probing of BYD touchpads as it results in too many false positives,
    and the hardware is not terribly popular and having the protocol
    support does not result in significantly improved user experience.

    We also change keycode for KEY_DATA to avoid clashing with
    KEY_FASTREVERSE. Luckily this newish code is used by CEC framework
    that is still in staging, so it is extremely unlikely that someone has
    already started using this keycode"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: change KEY_DATA from 0x275 to 0x277
    Input: psmouse - disable automatic probing of BYD touchpads

    Linus Torvalds
     
  • Some people are able to trigger a race where autoksyms.h is used before
    its empty version is even created. Let's create it at the same time as
    the directory holding it is created.

    Signed-off-by: Nicolas Pitre
    Tested-by: Prarit Bhargava
    Tested-by: Jarod Wilson
    Signed-off-by: Linus Torvalds

    Nicolas Pitre
     

01 Dec, 2016

14 commits

  • We should move the ops->destroy(dev) after the list_del(&dev->vm_node)
    so that we don't use "dev" after freeing it.

    Fixes: a28ebea2adc4 ("KVM: Protect device ops->create and list_add with kvm->lock")
    Signed-off-by: Dan Carpenter
    Reviewed-by: David Hildenbrand
    Signed-off-by: Radim Krčmář

    Dan Carpenter
     
  • KVM/ARM updates for v4.9-rc7

    - Do not call kvm_notify_acked for PPIs

    Radim Krčmář
     
  • Merge misc fixes from Andrew Morton:
    "7 fixes"

    * emailed patches from Andrew Morton :
    mm: fix false-positive WARN_ON() in truncate/invalidate for hugetlb
    kasan: support use-after-scope detection
    kasan: update kasan_global for gcc 7
    lib/debugobjects: export for use in modules
    zram: fix unbalanced idr management at hot removal
    thp: fix corner case of munlock() of PTE-mapped THPs
    mm, thp: propagation of conditional compilation in khugepaged.c

    Linus Torvalds
     
  • Hugetlb pages have ->index in size of the huge pages (PMD_SIZE or
    PUD_SIZE), not in PAGE_SIZE as other types of pages. This means we
    cannot user page_to_pgoff() to check whether we've got the right page
    for the radix-tree index.

    Let's introduce page_to_index() which would return radix-tree index for
    given page.

    We will be able to get rid of this once hugetlb will be switched to
    multi-order entries.

    Fixes: fc127da085c2 ("truncate: handle file thp")
    Link: http://lkml.kernel.org/r/20161123093053.mjbnvn5zwxw5e6lk@black.fi.intel.com
    Signed-off-by: Kirill A. Shutemov
    Reported-by: Doug Nelson
    Tested-by: Doug Nelson
    Reviewed-by: Naoya Horiguchi
    Cc: [4.8+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Gcc revision 241896 implements use-after-scope detection. Will be
    available in gcc 7. Support it in KASAN.

    Gcc emits 2 new callbacks to poison/unpoison large stack objects when
    they go in/out of scope. Implement the callbacks and add a test.

    [dvyukov@google.com: v3]
    Link: http://lkml.kernel.org/r/1479998292-144502-1-git-send-email-dvyukov@google.com
    Link: http://lkml.kernel.org/r/1479226045-145148-1-git-send-email-dvyukov@google.com
    Signed-off-by: Dmitry Vyukov
    Acked-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: [4.0+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Vyukov
     
  • kasan_global struct is part of compiler/runtime ABI. gcc revision
    241983 has added a new field to kasan_global struct. Update kernel
    definition of kasan_global struct to include the new field.

    Without this patch KASAN is broken with gcc 7.

    Link: http://lkml.kernel.org/r/1479219743-28682-1-git-send-email-dvyukov@google.com
    Signed-off-by: Dmitry Vyukov
    Acked-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: [4.0+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Vyukov
     
  • Drivers, or other modules, that use a mixture of objects (especially
    objects embedded within other objects) would like to take advantage of
    the debugobjects facilities to help catch misuse. Currently, the
    debugobjects interface is only available to builtin drivers and requires
    a set of EXPORT_SYMBOL_GPL for use by modules.

    I am using the debugobjects in i915.ko to try and catch some invalid
    operations on embedded objects. The problem currently only presents
    itself across module unload so forcing i915 to be builtin is not an
    option.

    Link: http://lkml.kernel.org/r/20161122143039.6433-1-chris@chris-wilson.co.uk
    Signed-off-by: Chris Wilson
    Cc: "Du, Changbin"
    Cc: Thomas Gleixner
    Cc: Christian Borntraeger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Wilson
     
  • The zram hot removal code calls idr_remove() even when zram_remove()
    returns an error (typically -EBUSY). This results in a leftover at the
    device release, eventually leading to a crash when the module is
    reloaded.

    As described in the bug report below, the following procedure would
    cause an Oops with zram:

    - provision three zram devices via modprobe zram num_devices=3
    - configure a size for each device
    + echo "1G" > /sys/block/$zram_name/disksize
    - mkfs and mount zram0 only
    - attempt to hot remove all three devices
    + echo 2 > /sys/class/zram-control/hot_remove
    + echo 1 > /sys/class/zram-control/hot_remove
    + echo 0 > /sys/class/zram-control/hot_remove
    - zram0 removal fails with EBUSY, as expected
    - unmount zram0
    - try zram0 hot remove again
    + echo 0 > /sys/class/zram-control/hot_remove
    - fails with ENODEV (unexpected)
    - unload zram kernel module
    + completes successfully
    - zram0 device node still exists
    - attempt to mount /dev/zram0
    + mount command is killed
    + following BUG is encountered

    BUG: unable to handle kernel paging request at ffffffffa0002ba0
    IP: get_disk+0x16/0x50
    Oops: 0000 [#1] SMP
    CPU: 0 PID: 252 Comm: mount Not tainted 4.9.0-rc6 #176
    Call Trace:
    exact_lock+0xc/0x20
    kobj_lookup+0xdc/0x160
    get_gendisk+0x2f/0x110
    __blkdev_get+0x10c/0x3c0
    blkdev_get+0x19d/0x2e0
    blkdev_open+0x56/0x70
    do_dentry_open.isra.19+0x1ff/0x310
    vfs_open+0x43/0x60
    path_openat+0x2c9/0xf30
    do_filp_open+0x79/0xd0
    do_sys_open+0x114/0x1e0
    SyS_open+0x19/0x20
    entry_SYSCALL_64_fastpath+0x13/0x94

    This patch adds the proper error check in hot_remove_store() not to call
    idr_remove() unconditionally.

    Fixes: 17ec4cd98578 ("zram: don't call idr_remove() from zram_remove()")
    Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=1010970
    Link: http://lkml.kernel.org/r/20161121132140.12683-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Reviewed-by: David Disseldorp
    Reported-by: David Disseldorp
    Tested-by: David Disseldorp
    Acked-by: Minchan Kim
    Acked-by: Sergey Senozhatsky
    Cc: [4.4+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Takashi Iwai
     
  • The following program triggers BUG() in munlock_vma_pages_range():

    // autogenerated by syzkaller (http://github.com/google/syzkaller)
    #include

    int main()
    {
    mmap((void*)0x20105000ul, 0xc00000ul, 0x2ul, 0x2172ul, -1, 0);
    mremap((void*)0x201fd000ul, 0x4000ul, 0xc00000ul, 0x3ul, 0x203f0000ul);
    return 0;
    }

    The test-case constructs the situation when munlock_vma_pages_range()
    finds PTE-mapped THP-head in the middle of page table and, by mistake,
    skips HPAGE_PMD_NR pages after that.

    As result, on the next iteration it hits the middle of PMD-mapped THP
    and gets upset seeing mlocked tail page.

    The solution is only skip HPAGE_PMD_NR pages if the THP was mlocked
    during munlock_vma_page(). It would guarantee that the page is
    PMD-mapped as we never mlock PTE-mapeed THPs.

    Fixes: e90309c9f772 ("thp: allow mlocked THP again")
    Link: http://lkml.kernel.org/r/20161115132703.7s7rrgmwttegcdh4@black.fi.intel.com
    Signed-off-by: Kirill A. Shutemov
    Reported-by: Dmitry Vyukov
    Cc: Konstantin Khlebnikov
    Cc: Andrey Ryabinin
    Cc: syzkaller
    Cc: Andrea Arcangeli
    Cc: [4.5+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Commit b46e756f5e47 ("thp: extract khugepaged from mm/huge_memory.c")
    moved code from huge_memory.c to khugepaged.c. Some of this code should
    be compiled only when CONFIG_SYSFS is enabled but the condition around
    this code was not moved into khugepaged.c.

    The result is a compilation error when CONFIG_SYSFS is disabled:

    mm/built-in.o: In function `khugepaged_defrag_store': khugepaged.c:(.text+0x2d095): undefined reference to `single_hugepage_flag_store'
    mm/built-in.o: In function `khugepaged_defrag_show': khugepaged.c:(.text+0x2d0ab): undefined reference to `single_hugepage_flag_show'

    This commit adds the #ifdef CONFIG_SYSFS around the code related to
    sysfs.

    Link: http://lkml.kernel.org/r/20161114203448.24197-1-jeremy.lefaure@lse.epita.fr
    Signed-off-by: Jérémy Lefaure
    Acked-by: Kirill A. Shutemov
    Acked-by: Hillf Danton
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jérémy Lefaure
     
  • Pull clk fixes from Stephen Boyd:
    "Two small fixes for MIPI PLLs on sunxi devices and a build fix for a
    Broadcom clk driver having unmet dependencies"

    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    clk: bcm: Fix unmet Kconfig dependencies for CLK_BCM_63XX
    clk: sunxi-ng: enable so-said LDOs for A33 SoC's pll-mipi clock
    clk: sunxi-ng: sun6i-a31: Enable PLL-MIPI LDOs when ungating it

    Linus Torvalds
     
  • Pull pwm fixes from Thierry Reding:
    "This contains two one-line fixes for issues that were introduced in
    v4.9-rc1"

    * tag 'pwm/for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
    pwm: Fix device reference leak
    pwm: meson: Add missing spin_lock_init()

    Linus Torvalds
     
  • The ER records are printed without explicit log level presuming line
    continuation until "\n". After the commit 4bcc595ccd8 (printk:
    reinstate KERN_CONT for printing continuation lines), the ER records are
    printed a character per line.

    Adding KERN_CONT to appropriate printk statements restores the printout
    behavior.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • 0x275 is used by KEY_FASTREVERSE.

    Fixes: 488326947cd1 ("Input: add HDMI CEC specific keycodes")
    Signed-off-by: Ping Cheng
    Acked-by: Hans Verkuil
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov

    Ping Cheng
     

30 Nov, 2016

7 commits

  • Pull ARC fixes from Vineet Gupta:

    - fix PAE40 crash [Yuriy]

    - disable IO-Coherency by default

    - use a different inline asm constraint for Zero Overhead loops

    * tag 'arc-4.9-final' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: mm: PAE40: Fix crash at munmap
    ARC: mm: IOC: Don't enable IOC by default
    ARC: Don't use "+l" inline asm constraint

    Linus Torvalds
     
  • This enables CONFIG_MODVERSIONS again, but allows for missing symbol CRC
    information in order to work around the issue that newer binutils
    versions seem to occasionally drop the CRC on the floor. binutils 2.26
    seems to work fine, while binutils 2.27 seems to break MODVERSIONS of
    symbols that have been defined in assembler files.

    [ We've had random missing CRC's before - it may be an old problem that
    just is now reliably triggered with the weak asm symbols and a new
    version of binutils ]

    Some day I really do want to remove MODVERSIONS entirely. Sadly, today
    does not appear to be that day: Debian people apparently do want the
    option to enable MODVERSIONS to make it easier to have external modules
    across kernel versions, and this seems to be a fairly minimal fix for
    the annoying problem.

    Cc: Ben Hutchings
    Acked-by: Michal Marek
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull CIFS fixes from Steve French:
    "A few misc important cifs fixes, including a fix for a 4.9 regression
    in posix_acl xattr handling"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    CIFS: iterate over posix acl xattr entry correctly in ACL_to_cifs_posix()
    Call echo service immediately after socket reconnect
    CIFS: Fix BUG() in calc_seckey()

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "Four small fixes.

    The be2iscsi is a potential device overrun in consistent memory, which
    could have nasty consequences if the consistent allocations are
    packed.

    The hpsa one fixes a regression where older controllers can now get a
    numbering clash between the first internal disk and the controller.

    The libfc one is a regression in timespec conversions which causes a
    user visible issue in a command line tool and the mpt3sas one fixes a
    regression where the controller could remain permanently blocked after
    an ATA pass through command followed by a reset"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: be2iscsi: allocate enough memory in beiscsi_boot_get_sinfo()
    scsi: mpt3sas: Unblock device after controller reset
    scsi: hpsa: use bus '3' for legacy HBA devices
    scsi: libfc: fix seconds_since_last_reset miscalculation

    Linus Torvalds
     
  • This reverts commit 70121f7f3725 ("i2c: octeon: thunderx: Limit register access retries").
    Using readq_poll_timeout instead of __raw_readq triggers the following
    debug warning:

    [ 78.871568] ipmi_ssif: Trying hotmod-specified SSIF interface at i2c address 0x12, adapter Cavium ThunderX i2c adapter at 0000:01:09.4, slave address 0x0
    [ 78.886107] do not call blocking ops when !TASK_RUNNING; state=2 set at [] prepare_to_wait_event+0x58/0x10c
    [ 78.897436] ------------[ cut here ]------------
    [ 78.902050] WARNING: CPU: 6 PID: 2235 at kernel/sched/core.c:7718 __might_sleep+0x80/0x88

    [...]

    [ 79.133553] [] __might_sleep+0x80/0x88
    [ 79.138862] [] octeon_i2c_test_iflg+0x4c/0xbc [i2c_thunderx]
    [ 79.146077] [] octeon_i2c_test_ready+0x18/0x70 [i2c_thunderx]
    [ 79.153379] [] octeon_i2c_wait+0x154/0x1a4 [i2c_thunderx]
    [ 79.160334] [] octeon_i2c_xfer+0xf4/0xf60 [i2c_thunderx]

    Signed-off-by: Jan Glauber
    Acked-by: Steven J. Hill
    Signed-off-by: Wolfram Sang

    Jan Glauber
     
  • commit 1c3c90930392 broke PAE40. Macro pfn_pte(pfn, prot) creates paddr
    from pfn, but the page shift was getting truncated to 32 bits since we lost
    the proper cast to 64 bits (for PAE400

    Instead of reverting that commit, use a better helper which is 32/64 bits
    safe just like ARM implementation.

    Fixes: 1c3c90930392 ("ARC: mm: fix build breakage with STRICT_MM_TYPECHECKS")
    Cc: #4.4+
    Signed-off-by: Yuriy Kolerov
    [vgupta: massaged changelog]
    Signed-off-by: Vineet Gupta

    Yuriy Kolerov
     
  • Linus found there still is a race in mremap after commit 5d1904204c99
    ("mremap: fix race between mremap() and page cleanning").

    As described by Linus:
    "the issue is that another thread might make the pte be dirty (in the
    hardware walker, so no locking of ours will make any difference)
    *after* we checked whether it was dirty, but *before* we removed it
    from the page tables"

    Fix it by moving the check after we removed it from the page table.

    Suggested-by: Linus Torvalds
    Signed-off-by: Aaron Lu
    Signed-off-by: Linus Torvalds

    Aaron Lu
     

29 Nov, 2016

11 commits

  • Make sure to drop the reference to the parent device taken by
    class_find_device() after "unexporting" any children when deregistering
    a PWM chip.

    Fixes: 0733424c9ba9 ("pwm: Unexport children before chip removal")
    Signed-off-by: Johan Hovold
    Signed-off-by: Thierry Reding

    Johan Hovold
     
  • Handling of recursion in d_real() is completely broken. Recursion is only
    done in the 'inode != NULL' case. But when opening the file we have
    'inode == NULL' hence d_real() will return an overlay dentry. This won't
    work since overlayfs doesn't define its own file operations, so all file
    ops will fail.

    Fix by doing the recursion first and the check against the inode second.

    Bash script to reproduce the issue written by Quentin:

    - 8< - - - - - 8< - - - - - 8< - - - - - 8< - - - -
    tmpdir=$(mktemp -d)
    pushd ${tmpdir}

    mkdir -p {upper,lower,work}
    echo -n 'rocks' > lower/ksplice
    mount -t overlay level_zero upper -o lowerdir=lower,upperdir=upper,workdir=work
    cat upper/ksplice

    tmpdir2=$(mktemp -d)
    pushd ${tmpdir2}

    mkdir -p {upper,work}
    mount -t overlay level_one upper -o lowerdir=${tmpdir}/upper,upperdir=upper,workdir=work
    ls -l upper/ksplice
    cat upper/ksplice
    - 8< - - - - - 8< - - - - - 8< - - - - - 8< - - - -

    Reported-by: Quentin Casasnovas
    Signed-off-by: Miklos Szeredi
    Fixes: 2d902671ce1c ("vfs: merge .d_select_inode() into .d_real()")
    Cc: # v4.8+

    Miklos Szeredi
     
  • Commit 2211d5ba5c6c ("posix_acl: xattr representation cleanups")
    removes the typedefs and the zero-length a_entries array in struct
    posix_acl_xattr_header, and uses bare struct posix_acl_xattr_header
    and struct posix_acl_xattr_entry directly.

    But it failed to iterate over posix acl slots when converting posix
    acls to CIFS format, which results in several test failures in
    xfstests (generic/053 generic/105) when testing against a samba v1
    server, starting from v4.9-rc1 kernel. e.g.

    [root@localhost xfstests]# diff -u tests/generic/105.out /root/xfstests/results//generic/105.out.bad
    --- tests/generic/105.out 2016-09-19 16:33:28.577962575 +0800
    +++ /root/xfstests/results//generic/105.out.bad 2016-10-22 15:41:15.201931110 +0800
    @@ -1,3 +1,4 @@
    QA output created by 105
    -rw-r--r-- root
    +setfacl: subdir: Invalid argument
    -rw-r--r-- root

    Fix it by introducing a new "ace" var, like what
    cifs_copy_posix_acl() does, and iterating posix acl xattr entries
    over it in the for loop.

    Signed-off-by: Eryu Guan
    Signed-off-by: Steve French

    Eryu Guan
     
  • Commit 4fcd1813e640 ("Fix reconnect to not defer smb3 session reconnect
    long after socket reconnect") changes the behaviour of the SMB2 echo
    service and causes it to renegotiate after a socket reconnect. However
    under default settings, the echo service could take up to 120 seconds to
    be scheduled.

    The patch forces the echo service to be called immediately resulting a
    negotiate call being made immediately on reconnect.

    Signed-off-by: Sachin Prabhu
    Reviewed-by: Pavel Shilovsky
    Signed-off-by: Steve French

    Sachin Prabhu
     
  • Andy Lutromirski's new virtually mapped kernel stack allocations moves
    kernel stacks the vmalloc area. This triggers the bug
    kernel BUG at ./include/linux/scatterlist.h:140!
    at calc_seckey()->sg_init()

    Signed-off-by: Sachin Prabhu
    Signed-off-by: Steve French
    Reviewed-by: Jeff Layton

    Sachin Prabhu
     
  • Pull libata fixes from Tejun Heo:
    "The recent changes in ahci MSI handling need one more fix. Hopefully,
    this restores parity with before.

    The other two are minor fixes with both low impact and risk"

    * 'for-4.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    ahci: always fall back to single-MSI mode
    libata-scsi: Fixup ata_gen_passthru_sense()
    mvsas: fix error return code in mvs_task_prep()

    Linus Torvalds
     
  • Pull sparc fixes from David Miller:
    "Two ugly build warning fixes"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    dbri: Fix compiler warning
    qlogicpti: Fix compiler warnings

    Linus Torvalds
     
  • dbri uses 'u32' for dma handle while invoking kernel DMA APIs,
    instead of using dma_addr_t. This hasn't caused any 'incompatible
    pointer type' warning on SPARC because until now dma_addr_t is of
    type u32. However, recent changes in SPARC ATU (iommu) enabled 64bit
    DMA and therefore dma_addr_t became of type u64. This makes
    'incompatible pointer type' warnings inevitable.

    e.g.
    sound/sparc/dbri.c: In function ‘snd_dbri_create’:
    sound/sparc/dbri.c:2538: warning: passing argument 3 of ‘dma_zalloc_coherent’ from incompatible pointer type
    ./include/linux/dma-mapping.h:608: note: expected ‘dma_addr_t *’ but argument is of type ‘u32 *’

    For the record, dbri(sbus) driver never executes on sun4v. Therefore
    even though 64bit DMA is enabled on SPARC, dbri continues to use
    legacy iommu that guarantees DMA address is always in 32bit range.

    This patch resolves above compiler warning.

    Signed-off-by: Tushar Dave
    Reviewed-by: thomas tai
    Signed-off-by: David S. Miller

    Tushar Dave
     
  • qlogicpti uses '__u32' for dma handle while invoking kernel DMA APIs,
    instead of using dma_addr_t. This hasn't caused any 'incompatible
    pointer type' warning on SPARC because until now dma_addr_t is of
    type u32. However, recent changes in SPARC ATU (iommu) enabled 64bit
    DMA and therefore dma_addr_t became of type u64. This makes
    'incompatible pointer type' warnings inevitable.

    e.g.
    drivers/scsi/qlogicpti.c: In function ‘qpti_map_queues’:
    drivers/scsi/qlogicpti.c:813: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type
    ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’
    drivers/scsi/qlogicpti.c:822: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type
    ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’

    For the record, qlogicpti never executes on sun4v. Therefore even
    though 64bit DMA is enabled on SPARC, qlogicpti continues to use
    legacy iommu that guarantees DMA address is always in 32bit range.

    This patch resolves aforementioned compiler warnings.

    Signed-off-by: Tushar Dave
    Reviewed-by: thomas tai
    Signed-off-by: David S. Miller

    Tushar Dave
     
  • Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Apparenty this is coming in the way of gcc fix which inhibits the usage
    of LP_COUNT as a gpr.

    Cc: stable@vger.kernel.org
    Signed-off-by: Vineet Gupta

    Vineet Gupta