1. 29 Mar, 2019 12 commits
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 6f510923
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are some binder, habanalabs, and vboxguest driver fixes for
        5.1-rc3.
      
        The Binder fixes resolve some reported issues found by testing, first
        by the selinux developers, and then earlier today by syzbot.
      
        The habanalabs fixes are all minor, resolving a number of tiny things.
      
        The vboxguest patches are a bit larger. They resolve the fact that
        virtual box decided to change their api in their latest release in a
        way that broke the existing kernel code, despite saying that they were
        never going to do that. So this is a bit of a "new feature", but is
        good to get merged so that 5.1 will work with the latest release. The
        changes are not large and of course virtual box "swears" they will not
        break this again, but no one is holding their breath here.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-5.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        virt: vbox: Implement passing requestor info to the host for VirtualBox 6.0.x
        binder: fix race between munmap() and direct reclaim
        binder: fix BUG_ON found by selinux-testsuite
        habanalabs: cast to expected type
        habanalabs: prevent host crash during suspend/resume
        habanalabs: perform accounting for active CS
        habanalabs: fix mapping with page size bigger than 4KB
        habanalabs: complete user context cleanup before hard reset
        habanalabs: fix bug when mapping very large memory area
        habanalabs: fix MMU number of pages calculation
      6f510923
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 3467b907
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Thirteen fixes, seven of which are for IBM fibre channel and three
        additional for fairly serious bugs in drivers (qla2xxx, mpt3sas,
        aacraid).
      
        Of the three core fixes, the most significant is probably the missed
        run queue causing an indefinite hang. The others are fixing a
        potential use after free on device close and silencing an incorrect
        warning"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: ibmvfc: Clean up transport events
        scsi: ibmvfc: Byte swap status and error codes when logging
        scsi: ibmvfc: Add failed PRLI to cmd_status lookup array
        scsi: ibmvfc: Remove "failed" from logged errors
        scsi: zfcp: reduce flood of fcrscn1 trace records on multi-element RSCN
        scsi: zfcp: fix scsi_eh host reset with port_forced ERP for non-NPIV FCP devices
        scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host
        scsi: sd: Quiesce warning if device does not report optimal I/O size
        scsi: sd: Fix a race between closing an sd device and sd I/O
        scsi: core: Run queue when state is set to running after being blocked
        scsi: qla4xxx: fix a potential NULL pointer dereference
        scsi: aacraid: Insure we don't access PCIe space during AER/EEH
        scsi: mpt3sas: Fix kernel panic during expander reset
      3467b907
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 4ad52836
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "A new ID for the i801 driver and some Documentation fixes to make it
        easier for people to find the bindings (which is also a basis for
        further improvements in that area)"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: wmt: make bindings file name match the driver
        i2c: sun6i-p2wi: make bindings file name match the driver
        i2c: stu300: make bindings file name match the driver
        i2c: mt65xx: make bindings file name match the driver
        i2c: iop3xx: make bindings file name match the driver
        i2c: i801: Add support for Intel Comet Lake
      4ad52836
    • Linus Torvalds's avatar
      Merge tag 'sound-5.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 9a4a6f0d
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "The important fixes at this time are a couple fixes in ALSA core: a
        fix for PCM is about the OOB access in PCM OSS plugins that has been
        for long time, but hasn't hit so often until now just because we
        allocated a large buffer via vmalloc(), and surfaced more often after
        switching to kvmalloc(). Another fix is for a long-standing PCM
        problem wrt racy PM resume.
      
        Others are trivial nospec coverage and usual HD-audio quirks"
      
      * tag 'sound-5.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda/realtek - Fix speakers on Acer Predator Helios 500 Ryzen laptops
        ALSA: pcm: Don't suspend stream in unrecoverable PCM state
        ALSA: hda/ca0132 - Simplify alt firmware loading code
        ALSA: pcm: Fix possible OOB access in PCM oss plugins
        ALSA: hda/realtek: Enable headset MIC of ASUS X430UN and X512DK with ALC256
        ALSA: hda/realtek: Enable headset mic of ASUS P5440FF with ALC256
        ALSA: hda/realtek: Enable ASUS X441MB and X705FD headset MIC with ALC256
        ALSA: hda/realtek - Add support for Acer Aspire E5-523G/ES1-432 headset mic
        ALSA: hda/realtek: Enable headset MIC of Acer Aspire Z24-890 with ALC286
        ALSA: seq: oss: Fix Spectre v1 vulnerability
        ALSA: rawmidi: Fix potential Spectre v1 vulnerability
      9a4a6f0d
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.1' of... · 0e40da3e
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Remove harmful -Oz option of Clang
      
       - Get back the original behavior (no recursion for in-tree build) for
         GNU Make 4.x
      
       - Some minor fixes for coccinelle patches
      
       - Do not overwrite .gitignore in the output directory in case it is
         version-controlled
      
       - Fix missed record-mcount bug for dynamic ftrace
      
       - Fix endianness bug in modversions for relative CRC
      
       - Cater to '^H' key code in Kconfig ncurses programs
      
      * tag 'kbuild-fixes-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kconfig/[mn]conf: handle backspace (^H) key
        kbuild: modversions: Fix relative CRC byte order interpretation
        scripts: coccinelle: Fix description of badty.cocci
        kbuild: strip whitespace in cmd_record_mcount findstring
        kbuild: do not overwrite .gitignore in output directory
        kbuild: skip parsing pre sub-make code for recursion
        coccinelle: put_device: reduce false positives
        kbuild: skip sub-make for in-tree build with GNU Make 4.x
        Revert "kbuild: use -Oz instead of -Os when using clang"
      0e40da3e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190329' of git://git.kernel.dk/linux-block · ffb8e45c
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Small set of fixes that should go into this series. This contains:
      
         - compat signal mask fix for io_uring (Arnd)
      
         - EAGAIN corner case for direct vs buffered writes for io_uring
           (Roman)
      
         - NVMe pull request from Christoph with various little fixes
      
         - sbitmap ws_active fix, which caused a perf regression for shared
           tags (me)
      
         - sbitmap bit ordering fix (Ming)
      
         - libata on-stack DMA fix (Raymond)"
      
      * tag 'for-linus-20190329' of git://git.kernel.dk/linux-block:
        nvmet: fix error flow during ns enable
        nvmet: fix building bvec from sg list
        nvme-multipath: relax ANA state check
        nvme-tcp: fix an endianess miss-annotation
        libata: fix using DMA buffers on stack
        io_uring: offload write to async worker in case of -EAGAIN
        sbitmap: order READ/WRITE freed instance and setting clear bit
        blk-mq: fix sbitmap ws_active for shared tags
        io_uring: fix big-endian compat signal mask handling
        blk-mq: update comment for blk_mq_hctx_has_pending()
        blk-mq: use blk_mq_put_driver_tag() to put tag
      ffb8e45c
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.1-rc3' of git://github.com/ceph/ceph-client · 7376e39a
      Linus Torvalds authored
      Pull ceph fixes from Ilya Dryomov:
       "A patch to avoid choking on multipage bvecs in the messenger and a
        small use-after-free fix"
      
      * tag 'ceph-for-5.1-rc3' of git://github.com/ceph/ceph-client:
        ceph: fix use-after-free on symlink traversal
        libceph: fix breakage caused by multipage bvecs
      7376e39a
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.1-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · c6503f12
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
       "Here are a few fixes for some corruption bugs and uninitialized
        variable problems. The few patches here have gone through a few days
        worth of fstest runs with no new problems observed.
      
        Changes since last update:
      
         - Fix a bunch of static checker complaints about uninitialized
           variables and insufficient range checks.
      
         - Avoid a crash when incore extent map data are corrupt.
      
         - Disallow FITRIM when we haven't recovered the log and know the
           metadata are stale.
      
         - Fix a data corruption when doing unaligned overlapping dio writes"
      
      * tag 'xfs-5.1-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: serialize unaligned dio writes against all other dio writes
        xfs: prohibit fstrim in norecovery mode
        xfs: always init bma in xfs_bmapi_write
        xfs: fix btree scrub checking with regards to root-in-inode
        xfs: dabtree scrub needs to range-check level
        xfs: don't trip over uninitialized buffer on extent read of corrupted inode
      c6503f12
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2019-03-29' of git://anongit.freedesktop.org/drm/drm · 9df0ef6c
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly fixes roundup, nothing two serious, some usb device regressions
        are fixed, and i915 GVT has a bigger fix but otherwise not really much
        happening here.
      
        core:
         - fb bpp check regression fix
         - release/unplug fix
         - use after free fixes
      
        i915:
         - fix mmap range checks
         - fix gvt ppgtt mm LRU list access races
         - fix selftest error pointer check
         - fix a macro definition (pre-emptive for potential further backports)
         - fix one AML SKU ULX status
      
        amdgpu:
         - one variable refresh rate fix
      
        udl:
         - fix EDID reading
      
        tegra:
         - build/warning fixes
      
        meson:
         - cleanup path fixes
         - TMDS clock filter fix
      
        rockchip:
         - NV12 buffers and scalar fix"
      
      * tag 'drm-fixes-2019-03-29' of git://anongit.freedesktop.org/drm/drm: (22 commits)
        drm/i915/icl: Fix VEBOX mismatch BUG_ON()
        drm/i915/selftests: Fix an IS_ERR() vs NULL check
        drm/i915: Mark AML 0x87CA as ULX
        drm/meson: fix TMDS clock filtering for DMT monitors
        drm/meson: Uninstall IRQ handler
        drm/meson: Fix invalid pointer in meson_drv_unbind()
        drm/udl: Refactor edid retrieving in UDL driver (v2)
        drm: Fix drm_release() and device unplug
        drm/fb: avoid setting 0 depth.
        drm/tegra: vic: Fix implicit function declaration warning
        drm/tegra: hub: Fix dereference before check
        drm/i915/icl: Fix the TRANS_DDI_FUNC_CTL2 bitfield macro
        drm/amd/display: Only allow VRR when vrefresh is within supported range
        drm/rockchip: vop: reset scale mode when win is disabled
        drm/vkms: fix use-after-free when drm_gem_handle_create() fails
        drm/vgem: fix use-after-free when drm_gem_handle_create() fails
        drm/i915/gvt: Add mutual lock for ppgtt mm LRU list
        drm/i915/gvt: Only assign ppgtt root at dispatch time
        drm/i915/gvt: Don't submit request for error workload dispatch
        drm/i915/gvt: stop scheduling workload when vgpu is inactive
        ...
      9df0ef6c
    • Changbin Du's avatar
      kconfig/[mn]conf: handle backspace (^H) key · 9c38f1f0
      Changbin Du authored
      Backspace is not working on some terminal emulators which do not send the
      key code defined by terminfo. Terminals either send '^H' (8) or '^?' (127).
      But currently only '^?' is handled. Let's also handle '^H' for those
      terminals.
      Signed-off-by: default avatarChangbin Du <changbin.du@gmail.com>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      9c38f1f0
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2019-03-28' of... · 0271ab11
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2019-03-28' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v5.2-rc3:
      - fix mmap range checks
      - fix gvt ppgtt mm LRU list access races
      - fix selftest error pointer check
      - fix a macro definition (pre-emptive for potential further backports)
      - fix one AML SKU ULX status
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/87sgv6ao7a.fsf@intel.com
      0271ab11
    • Dave Airlie's avatar
  2. 28 Mar, 2019 28 commits
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.1-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 9936328b
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
       "PCI fixes:
      
         - Clear level-triggered interrupts for the bandwidth notification
           supported added for v5.1 (Alexandru Gagniuc)
      
         - Clear bandwidth notification interrupts before enabling them (Lukas
           Wunner)
      
         - Report post-enumeration bandwidth changes only once for
           multi-function devices (Lukas Wunner)"
      
      * tag 'pci-v5.1-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI/LINK: Deduplicate bandwidth reports for multi-function devices
        PCI/LINK: Clear bandwidth notification interrupt before enabling it
        PCI/LINK: Supply IRQ handler so level-triggered IRQs are acked
      9936328b
    • Jens Axboe's avatar
      Merge branch 'nvme-5.1' of git://git.infradead.org/nvme into for-linus · 7bca889e
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "A few accumulated small fixes:
      
       - fix an endianess misannotation that sneaked in this merge window in
         nvme-tcp (me)
       - fix nvme-loop to handle multi-page segments (Ming)
       - fix error handling in the nvmet configfs code (Max)
       - add a missing requeue point in the multipath code (Martin George)"
      
      * 'nvme-5.1' of git://git.infradead.org/nvme:
        nvmet: fix error flow during ns enable
        nvmet: fix building bvec from sg list
        nvme-multipath: relax ANA state check
        nvme-tcp: fix an endianess miss-annotation
      7bca889e
    • Max Gurtovoy's avatar
      nvmet: fix error flow during ns enable · a536b497
      Max Gurtovoy authored
      In case we fail to enable p2pmem on the current namespace, disable the
      backing store device before exiting.
      
      Cc: Stephen Bates <sbates@raithlin.com>
      Signed-off-by: default avatarMax Gurtovoy <maxg@mellanox.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      a536b497
    • Ming Lei's avatar
      nvmet: fix building bvec from sg list · 02db9954
      Ming Lei authored
      There are two mistakes for building bvec from sg list for file
      backed ns:
      
      - use request data length to compute number of io vector, this way
      doesn't consider sg->offset, and the result may be smaller than required
      io vectors
      
      - bvec->bv_len isn't capped by sg->length
      
      This patch fixes this issue by building bvec from sg directly, given
      the whole IO stack is ready for multi-page bvec.
      Reported-by: default avatarYi Zhang <yi.zhang@redhat.com>
      Fixes: 3a85a5de ("nvme-loop: add a NVMe loopback host driver")
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      02db9954
    • Martin George's avatar
      nvme-multipath: relax ANA state check · cc2278c4
      Martin George authored
      When undergoing state transitions I/O might be requeued, hence
      we should always call nvme_mpath_set_live() to schedule requeue_work
      whenever the nvme device is live, independent on whether the
      old state was live or not.
      Signed-off-by: default avatarMartin George <marting@netapp.com>
      Signed-off-by: default avatarGargi Srinivas <sring@netapp.com>
      Signed-off-by: default avatarHannes Reinecke <hare@suse.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      cc2278c4
    • Christoph Hellwig's avatar
      nvme-tcp: fix an endianess miss-annotation · 988aef9e
      Christoph Hellwig authored
      nvme_tcp_end_request just takes the status value and the converts
      it to little endian as well as shifting for the phase bit.
      
      Fixes: 43ce38a6d823 ("nvme-tcp: support C2HData with SUCCESS flag")
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      988aef9e
    • David Howells's avatar
      afs: Fix StoreData op marshalling · 8c7ae38d
      David Howells authored
      The marshalling of AFS.StoreData, AFS.StoreData64 and YFS.StoreData64 calls
      generated by ->setattr() ops for the purpose of expanding a file is
      incorrect due to older documentation incorrectly describing the way the RPC
      'FileLength' parameter is meant to work.
      
      The older documentation says that this is the length the file is meant to
      end up at the end of the operation; however, it was never implemented this
      way in any of the servers, but rather the file is truncated down to this
      before the write operation is effected, and never expanded to it (and,
      indeed, it was renamed to 'TruncPos' in 2014).
      
      Fix this by setting the position parameter to the new file length and doing
      a zero-lengh write there.
      
      The bug causes Xwayland to SIGBUS due to unexpected non-expansion of a file
      it then mmaps.  This can be tested by giving the following test program a
      filename in an AFS directory:
      
      	#include <stdio.h>
      	#include <stdlib.h>
      	#include <unistd.h>
      	#include <fcntl.h>
      	#include <sys/mman.h>
      	int main(int argc, char *argv[])
      	{
      		char *p;
      		int fd;
      		if (argc != 2) {
      			fprintf(stderr,
      				"Format: test-trunc-mmap <file>\n");
      			exit(2);
      		}
      		fd = open(argv[1], O_RDWR | O_CREAT | O_TRUNC);
      		if (fd < 0) {
      			perror(argv[1]);
      			exit(1);
      		}
      		if (ftruncate(fd, 0x140008) == -1) {
      			perror("ftruncate");
      			exit(1);
      		}
      		p = mmap(NULL, 4096, PROT_READ | PROT_WRITE,
      			 MAP_SHARED, fd, 0);
      		if (p == MAP_FAILED) {
      			perror("mmap");
      			exit(1);
      		}
      		p[0] = 'a';
      		if (munmap(p, 4096) < 0) {
      			perror("munmap");
      			exit(1);
      		}
      		if (close(fd) < 0) {
      			perror("close");
      			exit(1);
      		}
      		exit(0);
      	}
      
      Fixes: 31143d5d ("AFS: implement basic file write support")
      Reported-by: default avatarJonathan Billings <jsbillin@umich.edu>
      Tested-by: default avatarJonathan Billings <jsbillin@umich.edu>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8c7ae38d
    • David Howells's avatar
      vfs: Update mount API docs · 7d6ab823
      David Howells authored
      Update the mount API docs to reflect recent changes to the code.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7d6ab823
    • Linus Torvalds's avatar
      Merge tag 's390-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · bfed6d0f
      Linus Torvalds authored
      Pull s390 fixes from Martin Schwidefsky:
       "Improvements and bug fixes for 5.1-rc2:
      
         - Fix early free of the channel program in vfio
      
         - On AP device removal make sure that all messages are flushed with
           the driver still attached that queued the message
      
         - Limit brk randomization to 32MB to reduce the chance that the heap
           of ld.so is placed after the main stack
      
         - Add a rolling average for the steal time of a CPU, this will be
           needed for KVM to decide when to do busy waiting
      
         - Fix a warning in the CPU-MF code
      
         - Add a notification handler for AP configuration change to react
           faster to new AP devices"
      
      * tag 's390-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/cpumf: Fix warning from check_processor_id
        zcrypt: handle AP Info notification from CHSC SEI command
        vfio: ccw: only free cp on final interrupt
        s390/vtime: steal time exponential moving average
        s390/zcrypt: revisit ap device remove procedure
        s390: limit brk randomization to 32MB
      bfed6d0f
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 97c41a6b
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "A couple of minor fixes only for now
      
         - fix for incorrect DMA channels on Renesas R-Car
      
         - Broadcom bcm2835 error handling fixes
      
         - Kconfig dependency fixes for bcm2835 and davinci
      
         - CPU idle wakeup fix for i.MX6
      
         - MMC regression on Tegra186
      
         - fix incorrect phy settings on one imx board"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        arm64: tegra: Disable CQE Support for SDMMC4 on Tegra186
        ARM: dts: nomadik: Fix polarity of SPI CS
        ARM: davinci: fix build failure with allnoconfig
        ARM: imx_v4_v5_defconfig: enable PWM driver
        ARM: imx_v6_v7_defconfig: continue compiling the pwm driver
        ARM: dts: imx6dl-yapp4: Use correct pseudo PHY address for the switch
        ARM: dts: imx6qdl: Fix typo in imx6qdl-icore-rqs.dtsi
        ARM: dts: imx6ull: Use the correct style for SPDX License Identifier
        ARM: dts: pfla02: increase phy reset duration
        ARM: imx6q: cpuidle: fix bug that CPU might not wake up at expected time
        ARM: imx51: fix a leaked reference by adding missing of_node_put
        ARM: dts: imx6dl-yapp4: Use rgmii-id phy mode on the cpu port
        arm64: bcm2835: Add missing dependency on MFD_CORE.
        ARM: dts: bcm283x: Fix hdmi hpd gpio pull
        soc: bcm: bcm2835-pm: Fix error paths of initialization.
        soc: bcm: bcm2835-pm: Fix PM_IMAGE_PERI power domain support.
        arm64: dts: renesas: r8a774c0: Fix SCIF5 DMA channels
        arm64: dts: renesas: r8a77990: Fix SCIF5 DMA channels
      97c41a6b
    • Fredrik Noring's avatar
      kbuild: modversions: Fix relative CRC byte order interpretation · 54a7151b
      Fredrik Noring authored
      Fix commit 56067812 ("kbuild: modversions: add infrastructure for
      emitting relative CRCs") where CRCs are interpreted in host byte order
      rather than proper kernel byte order. The bug is conditional on
      CONFIG_MODULE_REL_CRCS.
      
      For example, when loading a BE module into a BE kernel compiled with a LE
      system, the error "disagrees about version of symbol module_layout" is
      produced. A message such as "Found checksum D7FA6856 vs module 5668FAD7"
      will be given with debug enabled, which indicates an obvious endian
      problem within __kcrctab within the kernel image.
      
      The general solution is to use the macro TO_NATIVE, as is done in
      similar cases throughout modpost.c. With this correction it has been
      verified that a BE kernel compiled with a LE system accepts BE modules.
      
      This change has also been verified with a LE kernel compiled with a LE
      system, in which case TO_NATIVE returns its value unmodified since the
      byte orders match. This is by far the common case.
      
      Fixes: 56067812 ("kbuild: modversions: add infrastructure for emitting relative CRCs")
      Signed-off-by: default avatarFredrik Noring <noring@nocrew.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      54a7151b
    • Michael Stefaniuc's avatar
      scripts: coccinelle: Fix description of badty.cocci · 7fcddf7c
      Michael Stefaniuc authored
      Summary was copy and pasted from array_size.cocci.
      Signed-off-by: default avatarMichael Stefaniuc <mstefani@mykolab.com>
      Acked-by: default avatarJulia Lawall <julia.lawall@lip6.fr>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      7fcddf7c
    • Joe Lawrence's avatar
      kbuild: strip whitespace in cmd_record_mcount findstring · 1a49b2fd
      Joe Lawrence authored
      CC_FLAGS_FTRACE may contain trailing whitespace that interferes with
      findstring.
      
      For example, commit 6977f95e ("powerpc: avoid -mno-sched-epilog on
      GCC 4.9 and newer") introduced a change such that on my ppc64le box,
      CC_FLAGS_FTRACE="-pg -mprofile-kernel ".  (Note the trailing space.)
      When cmd_record_mcount is now invoked, findstring fails as the ftrace
      flags were found at very end of _c_flags, without the trailing space.
      
        _c_flags=" ... -pg -mprofile-kernel"
        CC_FLAGS_FTRACE="-pg -mprofile-kernel "
                                             ^
          findstring is looking for this extra space
      
      Remove the redundant whitespaces from CC_FLAGS_FTRACE in
      cmd_record_mcount to avoid this problem.
      
      [masahiro.yamada: This issue only happens in the released versions
      of GNU Make. CC_FLAGS_FTRACE will not contain the trailing space if
      you use the latest GNU Make, which contains commit b90fabc8d6f3
      ("* NEWS: Do not insert a space during '+=' if the value is empty.") ]
      
      Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com> (refactoring)
      Fixes: 6977f95e ("powerpc: avoid -mno-sched-epilog on GCC 4.9 and newer").
      Signed-off-by: default avatarJoe Lawrence <joe.lawrence@redhat.com>
      Acked-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      1a49b2fd
    • Masahiro Yamada's avatar
      kbuild: do not overwrite .gitignore in output directory · 156e7cbb
      Masahiro Yamada authored
      Commit 3a51ff34 ("kbuild: gitignore output directory") seemed to
      bother people who version-control output directories.
      
      Andre Przywara says:
      "Unfortunately this breaks my setup, because I keep a totally separate
      git repository in my build directories to track (various versions of)
      .config. So .gitignore there is carefully crafted to ignore most build
      artefacts, but not .config, for instance."
      
      Link: https://lkml.org/lkml/2019/3/22/1819Reported-by: default avatarAndre Przywara <andre.przywara@arm.com>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: default avatarAndre Przywara <andre.przywara@arm.com>
      Reviewed-by: default avatarAndre Przywara <andre.przywara@arm.com>
      156e7cbb
    • Masahiro Yamada's avatar
      kbuild: skip parsing pre sub-make code for recursion · 221cc2d2
      Masahiro Yamada authored
      When Make recurses to the top Makefile with sub-make-done unset,
      the code block surrounded by 'ifneq ($(sub-make-done),1) ... endif'
      is parsed multiple times. This happens for in-tree building of
      include/config/auto.conf, *-pkg, etc. with GNU Make 4.x.
      
      This is a slight regression by commit 688931a5 ("kbuild: skip
      sub-make for in-tree build with GNU Make 4.x") in terms of performance
      since that code block contains one $(shell ...) invocation.
      
      Fix it by exporting the variable irrespective of sub-make being run.
      I renamed it because GNU Make cannot properly export variables
      containing hyphens. This is probably a bug of GNU Make, and the issue
      in Kbuild had already been reported by commit 2bfbe788 ("kbuild:
      Do not use hyphen in exported variable name").
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      221cc2d2
    • Wen Yang's avatar
      coccinelle: put_device: reduce false positives · 7265f5b7
      Wen Yang authored
      Don't complain about a return when this function returns "&pdev->dev".
      
      Fixes: da9cfb87 ("coccinelle: semantic code search for missing put_device()")
      Reported-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarWen Yang <wen.yang99@zte.com.cn>
      Acked-by: default avatarJulia Lawall <julia.lawall@lip6.fr>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      7265f5b7
    • raymond pang's avatar
      libata: fix using DMA buffers on stack · dd08a8d9
      raymond pang authored
      When CONFIG_VMAP_STACK=y, __pa() returns incorrect physical address for
      a stack virtual address. Stack DMA buffers must be avoided.
      Signed-off-by: default avatarraymond pang <raymondpangxd@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      dd08a8d9
    • José Roberto de Souza's avatar
      drm/i915/icl: Fix VEBOX mismatch BUG_ON() · 26cdaac4
      José Roberto de Souza authored
      GT VEBOX DISABLE is only 4 bits wide but it was using a 8 bits wide
      mask, the remaning reserved bits is set to 0 causing 4 more
      nonexistent VEBOX engines being detected as enabled, triggering the
      BUG_ON() because of mismatch between vebox_mask and newly added
      VEBOX_MASK().
      
      [   64.081621] [drm:intel_device_info_init_mmio [i915]] vdbox enable: 0005, instances: 0005
      [   64.081763] [drm:intel_device_info_init_mmio [i915]] vebox enable: 00f1, instances: 0001
      [   64.081825] intel_device_info_init_mmio:925 GEM_BUG_ON(vebox_mask != ({ unsigned int first__ = (VECS0); unsigned int count__ = (2); ((&(dev_priv)->__info)->engine_mask & (((~0UL) - (1UL << (first__)) + 1) & (~0UL >> (64 - 1 - (first__ + count__ - 1))))) >> first__; }))
      [   64.082047] ------------[ cut here ]------------
      [   64.082054] kernel BUG at drivers/gpu/drm/i915/intel_device_info.c:925!
      
      BSpec: 20680
      Fixes: 26376a7e ("drm/i915/icl: Check for fused-off VDBOX and VEBOX instances")
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Oscar Mateo <oscar.mateo@intel.com>
      Signed-off-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190326230223.26336-1-jose.souza@intel.com
      (cherry picked from commit 547fcf9b)
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      26cdaac4
    • Thomas Richter's avatar
      s390/cpumf: Fix warning from check_processor_id · b6ffdf27
      Thomas Richter authored
      Function __hw_perf_event_init() used a CPU variable without
      ensuring CPU preemption has been disabled. This caused the
      following warning in the kernel log:
      
        [ 7.277085] BUG: using smp_processor_id() in preemptible
                       [00000000] code: cf-csdiag/1892
        [ 7.277111] caller is cf_diag_event_init+0x13a/0x338
        [ 7.277122] CPU: 10 PID: 1892 Comm: cf-csdiag Not tainted
                       5.0.0-20190318.rc0.git0.9e1a11e0f602.300.fc29.s390x+debug #1
        [ 7.277131] Hardware name: IBM 2964 NC9 712 (LPAR)
        [ 7.277139] Call Trace:
        [ 7.277150] ([<000000000011385a>] show_stack+0x82/0xd0)
        [ 7.277161]  [<0000000000b7a71a>] dump_stack+0x92/0xd0
        [ 7.277174]  [<00000000007b7e9c>] check_preemption_disabled+0xe4/0x100
        [ 7.277183]  [<00000000001228aa>] cf_diag_event_init+0x13a/0x338
        [ 7.277195]  [<00000000002cf3aa>] perf_try_init_event+0x72/0xf0
        [ 7.277204]  [<00000000002d0bba>] perf_event_alloc+0x6fa/0xce0
        [ 7.277214]  [<00000000002dc4a8>] __s390x_sys_perf_event_open+0x398/0xd50
        [ 7.277224]  [<0000000000b9e8f0>] system_call+0xdc/0x2d8
        [ 7.277233] 2 locks held by cf-csdiag/1892:
        [ 7.277241]  #0: 00000000976f5510 (&sig->cred_guard_mutex){+.+.},
                        at: __s390x_sys_perf_event_open+0xd2e/0xd50
        [ 7.277257]  #1: 00000000363b11bd (&pmus_srcu){....},
                        at: perf_event_alloc+0x52e/0xce0
      
      The variable is now accessed in proper context. Use
      get_cpu_var()/put_cpu_var() pair to disable
      preemption during access.
      As the hardware authorization settings apply to all CPUs, it
      does not matter which CPU is used to check the authorization setting.
      
      Remove the event->count assignment. It is not needed as function
      perf_event_alloc() allocates memory for the event with kzalloc() and
      thus count is already set to zero.
      
      Fixes: fe5908bc ("s390/cpum_cf_diag: Add support for s390 counter facility diagnostic trace")
      Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
      Reviewed-by: default avatarHendrik Brueckner <brueckner@linux.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      b6ffdf27
    • Tyrel Datwyler's avatar
      scsi: ibmvfc: Clean up transport events · d6e2635b
      Tyrel Datwyler authored
      No change to functionality. Simply make transport event messages a little
      clearer, and rework CRQ format enums such that we have separate enums for
      INIT messages and XPORT events.
      
      [mkp: typo]
      Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      d6e2635b
    • Tyrel Datwyler's avatar
      scsi: ibmvfc: Byte swap status and error codes when logging · 3e6f7de4
      Tyrel Datwyler authored
      Status and error codes are returned in big endian from the VIOS. The values
      are translated into a human readable format when logged, but the values are
      also logged. This patch byte swaps those values so that they are consistent
      between BE and LE platforms.
      Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      3e6f7de4
    • Tyrel Datwyler's avatar
      scsi: ibmvfc: Add failed PRLI to cmd_status lookup array · 95237c25
      Tyrel Datwyler authored
      The VIOS uses the SCSI_ERROR class to report PRLI failures. These errors
      are indicated with the combination of a IBMVFC_FC_SCSI_ERROR return status
      and 0x8000 error code. Add these codes to cmd_status[] with appropriate
      human readable error message.
      Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      95237c25
    • Tyrel Datwyler's avatar
      scsi: ibmvfc: Remove "failed" from logged errors · 6dc6a944
      Tyrel Datwyler authored
      The text of messages logged with ibmvfc_log_error() always contain the term
      "failed". In the case of cancelled commands during EH they are reported
      back by the VIOS using error codes. This can be confusing to somebody
      looking at these log messages as to whether a command was successfully
      cancelled. The following real log message for example it is unclear if the
      transaction was actaully cancelled.
      
      <6>sd 0:0:1:1: Cancelling outstanding commands.
      <3>sd 0:0:1:1: [sde] Command (28) failed: transaction cancelled (2:6) flags: 0 fcp_rsp: 0, resid=0, scsi_status: 0
      
      Remove prefixing of "failed" to all error logged messages. The
      ibmvfc_log_error() function translates the returned error/status codes to a
      human readable message already.
      Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      6dc6a944
    • Steffen Maier's avatar
      scsi: zfcp: reduce flood of fcrscn1 trace records on multi-element RSCN · c8206579
      Steffen Maier authored
      If an incoming ELS of type RSCN contains more than one element, zfcp
      suboptimally causes repeated erp trigger NOP trace records for each
      previously failed port. These could be ports that went away.  It loops over
      each RSCN element, and for each of those in an inner loop over all
      zfcp_ports.
      
      The trigger to recover failed ports should be just the reception of some
      RSCN, no matter how many elements it has. So we can loop over failed ports
      separately, and only then loop over each RSCN element to handle the
      non-failed ports.
      
      The call chain was:
      
        zfcp_fc_incoming_rscn
          for (i = 1; i < no_entries; i++)
            _zfcp_fc_incoming_rscn
              list_for_each_entry(port, &adapter->port_list, list)
                if (masked port->d_id match) zfcp_fc_test_link
                if (!port->d_id) zfcp_erp_port_reopen "fcrscn1"   <===
      
      In order the reduce the "flooding" of the REC trace area in such cases, we
      factor out handling the failed ports to be outside of the entries loop:
      
        zfcp_fc_incoming_rscn
          if (no_entries > 1)                                     <===
            list_for_each_entry(port, &adapter->port_list, list)  <===
              if (!port->d_id) zfcp_erp_port_reopen "fcrscn1"     <===
          for (i = 1; i < no_entries; i++)
            _zfcp_fc_incoming_rscn
              list_for_each_entry(port, &adapter->port_list, list)
                if (masked port->d_id match) zfcp_fc_test_link
      
      Abbreviated example trace records before this code change:
      
      Tag            : fcrscn1
      WWPN           : 0x500507630310d327
      ERP want       : 0x02
      ERP need       : 0x02
      
      Tag            : fcrscn1
      WWPN           : 0x500507630310d327
      ERP want       : 0x02
      ERP need       : 0x00                 NOP => superfluous trace record
      
      The last trace entry repeats if there are more than 2 RSCN elements.
      Signed-off-by: default avatarSteffen Maier <maier@linux.ibm.com>
      Reviewed-by: default avatarBenjamin Block <bblock@linux.ibm.com>
      Reviewed-by: default avatarJens Remus <jremus@linux.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      c8206579
    • Steffen Maier's avatar
      scsi: zfcp: fix scsi_eh host reset with port_forced ERP for non-NPIV FCP devices · 242ec145
      Steffen Maier authored
      Suppose more than one non-NPIV FCP device is active on the same channel.
      Send I/O to storage and have some of the pending I/O run into a SCSI
      command timeout, e.g. due to bit errors on the fibre. Now the error
      situation stops. However, we saw FCP requests continue to timeout in the
      channel. The abort will be successful, but the subsequent TUR fails.
      Scsi_eh starts. The LUN reset fails. The target reset fails.  The host
      reset only did an FCP device recovery. However, for non-NPIV FCP devices,
      this does not close and reopen ports on the SAN-side if other non-NPIV FCP
      device(s) share the same open ports.
      
      In order to resolve the continuing FCP request timeouts, we need to
      explicitly close and reopen ports on the SAN-side.
      
      This was missing since the beginning of zfcp in v2.6.0 history commit
      ea127f97 ("[PATCH] s390 (7/7): zfcp host adapter.").
      
      Note: The FSF requests for forced port reopen could run into FSF request
      timeouts due to other reasons. This would trigger an internal FCP device
      recovery. Pending forced port reopen recoveries would get dismissed. So
      some ports might not get fully reopened during this host reset handler.
      However, subsequent I/O would trigger the above described escalation and
      eventually all ports would be forced reopen to resolve any continuing FCP
      request timeouts due to earlier bit errors.
      Signed-off-by: default avatarSteffen Maier <maier@linux.ibm.com>
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Cc: <stable@vger.kernel.org> #3.0+
      Reviewed-by: default avatarJens Remus <jremus@linux.ibm.com>
      Reviewed-by: default avatarBenjamin Block <bblock@linux.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      242ec145
    • Steffen Maier's avatar
      scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host · fe67888f
      Steffen Maier authored
      An already deleted SCSI device can exist on the Scsi_Host and remain there
      because something still holds a reference.  A new SCSI device with the same
      H:C:T:L and FCP device, target port WWPN, and FCP LUN can be created.  When
      we try to unblock an rport, we still find the deleted SCSI device and
      return early because the zfcp_scsi_dev of that SCSI device is not
      ZFCP_STATUS_COMMON_UNBLOCKED. Hence we miss to unblock the rport, even if
      the new proper SCSI device would be in good state.
      
      Therefore, skip deleted SCSI devices when iterating the sdevs of the shost.
      [cf. __scsi_device_lookup{_by_target}() or scsi_device_get()]
      
      The following abbreviated trace sequence can indicate such problem:
      
      Area           : REC
      Tag            : ersfs_3
      LUN            : 0x4045400300000000
      WWPN           : 0x50050763031bd327
      LUN status     : 0x40000000     not ZFCP_STATUS_COMMON_UNBLOCKED
      Ready count    : n		not incremented yet
      Running count  : 0x00000000
      ERP want       : 0x01
      ERP need       : 0xc1		ZFCP_ERP_ACTION_NONE
      
      Area           : REC
      Tag            : ersfs_3
      LUN            : 0x4045400300000000
      WWPN           : 0x50050763031bd327
      LUN status     : 0x41000000
      Ready count    : n+1
      Running count  : 0x00000000
      ERP want       : 0x01
      ERP need       : 0x01
      
      ...
      
      Area           : REC
      Level          : 4		only with increased trace level
      Tag            : ertru_l
      LUN            : 0x4045400300000000
      WWPN           : 0x50050763031bd327
      LUN status     : 0x40000000
      Request ID     : 0x0000000000000000
      ERP status     : 0x01800000
      ERP step       : 0x1000
      ERP action     : 0x01
      ERP count      : 0x00
      
      NOT followed by a trace record with tag "scpaddy"
      for WWPN 0x50050763031bd327.
      Signed-off-by: default avatarSteffen Maier <maier@linux.ibm.com>
      Fixes: 6f2ce1c6 ("scsi: zfcp: fix rport unblock race with LUN recovery")
      Cc: <stable@vger.kernel.org> #2.6.32+
      Reviewed-by: default avatarJens Remus <jremus@linux.ibm.com>
      Reviewed-by: default avatarBenjamin Block <bblock@linux.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      fe67888f
    • Martin K. Petersen's avatar
      scsi: sd: Quiesce warning if device does not report optimal I/O size · 1d5de5bd
      Martin K. Petersen authored
      Commit a83da8a4 ("scsi: sd: Optimal I/O size should be a multiple
      of physical block size") split one conditional into several separate
      statements in an effort to provide more accurate warning messages when
      a device reports a nonsensical value. However, this reorganization
      accidentally dropped the precondition of the reported value being
      larger than zero. This lead to a warning getting emitted on devices
      that do not report an optimal I/O size at all.
      
      Remain silent if a device does not report an optimal I/O size.
      
      Fixes: a83da8a4 ("scsi: sd: Optimal I/O size should be a multiple of physical block size")
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: <stable@vger.kernel.org>
      Reported-by: default avatarHussam Al-Tayeb <ht990332@gmx.com>
      Tested-by: default avatarHussam Al-Tayeb <ht990332@gmx.com>
      Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      1d5de5bd
    • Bart Van Assche's avatar
      scsi: sd: Fix a race between closing an sd device and sd I/O · c14a5726
      Bart Van Assche authored
      The scsi_end_request() function calls scsi_cmd_to_driver() indirectly and
      hence needs the disk->private_data pointer. Avoid that that pointer is
      cleared before all affected I/O requests have finished. This patch avoids
      that the following crash occurs:
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
      Call trace:
       scsi_mq_uninit_cmd+0x1c/0x30
       scsi_end_request+0x7c/0x1b8
       scsi_io_completion+0x464/0x668
       scsi_finish_command+0xbc/0x160
       scsi_eh_flush_done_q+0x10c/0x170
       sas_scsi_recover_host+0x84c/0xa98 [libsas]
       scsi_error_handler+0x140/0x5b0
       kthread+0x100/0x12c
       ret_from_fork+0x10/0x18
      
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Ming Lei <ming.lei@redhat.com>
      Cc: Hannes Reinecke <hare@suse.com>
      Cc: Johannes Thumshirn <jthumshirn@suse.de>
      Cc: Jason Yan <yanaijie@huawei.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
      Reported-by: default avatarJason Yan <yanaijie@huawei.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      c14a5726