Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add compatibility to upboard/upsquared to blokas Pisound raspberry hat. #664

Open
wants to merge 3,475 commits into
base: master
Choose a base branch
from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Aug 7, 2017

  1. usb: dwc3: omap: fix race of pm runtime with irq handler in probe

    [ Upstream commit 12a7f17 ]
    
    Now races can happen between interrupt handler execution and PM runtime in
    error handling code path in probe and in dwc3_omap_remove() which will lead
    to system crash:
    
    in probe:
    ...
     err1:
    	pm_runtime_put_sync(dev);
    ^^ PM runtime can race with IRQ handler when deferred probing happening
       due to extcon
    	pm_runtime_disable(dev);
    
    	return ret;
    
    in dwc3_omap_remove:
    ...
    	dwc3_omap_disable_irqs(omap);
    ^^ IRQs are disabled in HW, but handler may still run
    	of_platform_depopulate(omap->dev);
    	pm_runtime_put_sync(&pdev->dev);
    ^^ PM runtime can race with IRQ handler
    	pm_runtime_disable(&pdev->dev);
    
    	return 0;
    
    So, OMAP DWC3 IRQ need to be disabled before calling
    pm_runtime_put() in probe and in dwc3_omap_remove().
    
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    grygoriyS authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    8af0937 View commit details
    Browse the repository at this point in the history
  2. ARM64: zynqmp: Fix W=1 dtc 1.4 warnings

    [ Upstream commit 4ea2a6b ]
    
    The patch removes these warnings reported by dtc 1.4:
    Warning (unit_address_vs_reg): Node /amba_apu has a reg or ranges
    property, but no unit name
    Warning (unit_address_vs_reg): Node /memory has a reg or ranges
    property, but no unit name
    
    Signed-off-by: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Michal Simek authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    e360353 View commit details
    Browse the repository at this point in the history
  3. ARM64: zynqmp: Fix i2c node's compatible string

    [ Upstream commit c415f9e ]
    
    The Zynq Ultrascale MP uses version 1.4 of the Cadence IP core
    which fixes some silicon bugs that needed software workarounds
    in Version 1.0 that was used on Zynq systems.
    
    Signed-off-by: Moritz Fischer <mdf@kernel.org>
    Cc: Michal Simek <michal.simek@xilinx.com>
    Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
    Cc: Rob Herring <robh+dt@kernel.org>
    Acked-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
    Signed-off-by: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mfischer authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    3209f3f View commit details
    Browse the repository at this point in the history
  4. perf probe: Fix to get correct modname from elf header

    [ Upstream commit 1f2ed15 ]
    
    Since 'perf probe' supports cross-arch probes, it is possible to analyze
    different arch kernel image which has different bits-per-long.
    
    In that case, it fails to get the module name because it uses the
    MOD_NAME_OFFSET macro based on the host machine bits-per-long, instead
    of the target arch bits-per-long.
    
    This fixes above issue by changing modname-offset based on the target
    archs bit width. This is ok because linux kernel uses LP64 model on
    64bit arch.
    
    E.g. without this (on x86_64, and target module is arm32):
    
      $ perf probe -m build-arm/fs/configfs/configfs.ko -D configfs_lookup
      p:probe/configfs_lookup :configfs_lookup+0
                              ^-Here is an empty module name.
    
    With this fix, you can see correct module name:
    
      $ perf probe -m build-arm/fs/configfs/configfs.ko -D configfs_lookup
      p:probe/configfs_lookup configfs:configfs_lookup+0
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/148337043836.6752.383495516397005695.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mhiramat authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    69f3df1 View commit details
    Browse the repository at this point in the history
  5. ARM: s3c2410_defconfig: Fix invalid values for NF_CT_PROTO_*

    [ Upstream commit 3ef01c9 ]
    
    NF_CT_PROTO_DCCP/SCTP/UDPLITE were switched from tristate to boolean so
    defconfig needs to be adjusted to silence warnings:
    	warning: symbol value 'm' invalid for NF_CT_PROTO_DCCP
    	warning: symbol value 'm' invalid for NF_CT_PROTO_SCTP
    	warning: symbol value 'm' invalid for NF_CT_PROTO_UDPLITE
    
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    krzk authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ebd4642 View commit details
    Browse the repository at this point in the history
  6. ACPI / scan: Prefer devices without _HID/_CID for _ADR matching

    [ Upstream commit c2a6bba ]
    
    The way acpi_find_child_device() works currently is that, if there
    are two (or more) devices with the same _ADR value in the same
    namespace scope (which is not specifically allowed by the spec and
    the OS behavior in that case is not defined), the first one of them
    found to be present (with the help of _STA) will be returned.
    
    This covers the majority of cases, but is not sufficient if some of
    the devices in question have a _HID (or _CID) returning some valid
    ACPI/PNP device IDs (which is disallowed by the spec) and the
    ASL writers' expectation appears to be that the OS will match
    devices without a valid ACPI/PNP device ID against a given bus
    address first.
    
    To cover this special case as well, modify find_child_checks()
    to prefer devices without ACPI/PNP device IDs over devices that
    have them.
    
    Suggested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rafaeljw authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a15a3d9 View commit details
    Browse the repository at this point in the history
  7. usb: gadget: Fix copy/pasted error message

    [ Upstream commit 43aef5c ]
    
    This fixes an error message that was probably copied and pasted. The same
    message is used for both the in and out endpoints, so it makes it impossible
    to know which one actually failed because both cases say "IN".
    
    Make the out endpoint error message say "OUT".
    
    Signed-off-by: David Lechner <david@lechnology.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dlech authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    92d6a81 View commit details
    Browse the repository at this point in the history
  8. Btrfs: use down_read_nested to make lockdep silent

    [ Upstream commit e321f8a ]
    
    If @block_group is not @used_bg, it'll try to get @used_bg's lock without
    droping @block_group 's lock and lockdep has throwed a scary deadlock warning
    about it.
    Fix it by using down_read_nested.
    
    Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Liu Bo authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    78418b8 View commit details
    Browse the repository at this point in the history
  9. Btrfs: fix lockdep warning about log_mutex

    [ Upstream commit 781feef ]
    
    While checking INODE_REF/INODE_EXTREF for a corner case, we may acquire a
    different inode's log_mutex with holding the current inode's log_mutex, and
    lockdep has complained this with a possilble deadlock warning.
    
    Fix this by using mutex_lock_nested() when processing the other inode's
    log_mutex.
    
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Liu Bo authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    6731212 View commit details
    Browse the repository at this point in the history
  10. benet: stricter vxlan offloading check in be_features_check

    [ Upstream commit 096de2f ]
    
    When VXLAN offloading is enabled, be_features_check() tries to check if
    an encapsulated packet is indeed a VXLAN packet. The check is not strict
    enough, and considers any UDP-encapsulated ethernet frame with a 8-byte
    tunnel header as being VXLAN. Unfortunately, both GENEVE and VXLAN-GPE
    have a 8-byte header, so they get through this check.
    
    Force the UDP destination port to be the one that has been offloaded to
    hardware.
    
    Without this, GENEVE-encapsulated packets can end up having an incorrect
    checksum when both a GENEVE and a VXLAN (offloaded) tunnel are
    configured.
    
    This is similar to commit a547224 ("mlx4e: Do not attempt to
    offload VXLAN ports that are unrecognized").
    
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    qsn authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    49fc90b View commit details
    Browse the repository at this point in the history
  11. Btrfs: adjust outstanding_extents counter properly when dio write is …

    …split
    
    [ Upstream commit c293166 ]
    
    Currently how btrfs dio deals with split dio write is not good
    enough if dio write is split into several segments due to the
    lack of contiguous space, a large dio write like 'dd bs=1G count=1'
    can end up with incorrect outstanding_extents counter and endio
    would complain loudly with an assertion.
    
    This fixes the problem by compensating the outstanding_extents
    counter in inode if a large dio write gets split.
    
    Reported-by: Anand Jain <anand.jain@oracle.com>
    Tested-by: Anand Jain <anand.jain@oracle.com>
    Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Liu Bo authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    f76ddff View commit details
    Browse the repository at this point in the history
  12. Xen: ARM: Zero reserved fields of xatp before making hypervisor call

    [ Upstream commit 0b47a6b ]
    
    Ensure all reserved fields of xatp are zero before making
    hypervisor call to XEN in xen_map_device_mmio().
    xenmem_add_to_physmap_one() in XEN fails the mapping request if
    extra.res reserved field in xatp is not zero for XENMAPSPACE_dev_mmio
    request.
    
    Signed-off-by: Jiandi An <anjiandi@codeaurora.org>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Jiandi An authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    704a6d7 View commit details
    Browse the repository at this point in the history
  13. tools lib traceevent: Fix prev/next_prio for deadline tasks

    [ Upstream commit 0748591 ]
    
    Currently, the sched:sched_switch tracepoint reports deadline tasks with
    priority -1. But when reading the trace via perf script I've got the
    following output:
    
      # ./d & # (d is a deadline task, see [1])
      # perf record -e sched:sched_switch -a sleep 1
      # perf script
          ...
             swapper     0 [000]  2146.962441: sched:sched_switch: swapper/0:0 [120] R ==> d:2593 [4294967295]
                   d  2593 [000]  2146.972472: sched:sched_switch: d:2593 [4294967295] R ==> g:2590 [4294967295]
    
    The task d reports the wrong priority [4294967295]. This happens because
    the "int prio" is stored in an unsigned long long val. Although it is
    set as a %lld, as int is shorter than unsigned long long,
    trace_seq_printf prints it as a positive number.
    
    The fix is just to cast the val as an int, and print it as a %d,
    as in the sched:sched_switch tracepoint's "format".
    
    The output with the fix is:
    
      # ./d &
      # perf record -e sched:sched_switch -a sleep 1
      # perf script
          ...
             swapper     0 [000]  4306.374037: sched:sched_switch: swapper/0:0 [120] R ==> d:10941 [-1]
                   d 10941 [000]  4306.383823: sched:sched_switch: d:10941 [-1] R ==> swapper/0:0 [120]
    
    [1] d.c
    
     ---
      #include <stdio.h>
      #include <unistd.h>
      #include <sys/syscall.h>
      #include <linux/types.h>
      #include <linux/sched.h>
    
      struct sched_attr {
    	__u32 size, sched_policy;
    	__u64 sched_flags;
    	__s32 sched_nice;
    	__u32 sched_priority;
    	__u64 sched_runtime, sched_deadline, sched_period;
      };
    
      int sched_setattr(pid_t pid, const struct sched_attr *attr, unsigned int flags)
      {
    	return syscall(__NR_sched_setattr, pid, attr, flags);
      }
    
      int main(void)
      {
    	struct sched_attr attr = {
    		.size		= sizeof(attr),
    		.sched_policy	= SCHED_DEADLINE, /* This creates a 10ms/30ms reservation */
    		.sched_runtime	= 10 * 1000 * 1000,
    		.sched_period	= attr.sched_deadline = 30 * 1000 * 1000,
    	};
    
    	if (sched_setattr(0, &attr, 0) < 0) {
    		perror("sched_setattr");
    		return -1;
    	}
    
    	for(;;);
      }
     ---
    
    Committer notes:
    
    Got the program from the provided URL, http://bristot.me/lkml/d.c,
    trimmed it and included in the cset log above, so that we have
    everything needed to test it in one place.
    
    Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
    Acked-by: Steven Rostedt <rostedt@goodmis.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/866ef75bcebf670ae91c6a96daa63597ba981f0d.1483443552.git.bristot@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Daniel Bristot de Oliveira authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ab5e7df View commit details
    Browse the repository at this point in the history
  14. xfrm: Don't use sk_family for socket policy lookups

    commit 4c86d77 upstream.
    
    On IPv4-mapped IPv6 addresses sk_family is AF_INET6,
    but the flow informations are created based on AF_INET.
    So the routing set up 'struct flowi4' but we try to
    access 'struct flowi6' what leads to an out of bounds
    access. Fix this by using the family we get with the
    dst_entry, like we do it for the standard policy lookup.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    klassert authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    0b86564 View commit details
    Browse the repository at this point in the history
  15. perf tools: Install tools/lib/traceevent plugins with install-bin

    [ Upstream commit 30a9c64 ]
    
    Those are binaries as well, so should be installed by:
    
      make -C tools/perf install-bin'
    
    too.
    
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/n/tip-3841b37u05evxrs1igkyu6ks@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    acmel authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    d8086c3 View commit details
    Browse the repository at this point in the history
  16. perf symbols: Robustify reading of build-id from sysfs

    [ Upstream commit 7934c98 ]
    
    Markus reported that perf segfaults when reading /sys/kernel/notes from
    a kernel linked with GNU gold, due to what looks like a gold bug, so do
    some bounds checking to avoid crashing in that case.
    
    Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
    Report-Link: http://lkml.kernel.org/r/20161219161821.GA294@x4
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-ryhgs6a6jxvz207j2636w31c@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    acmel authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ddc0ec3 View commit details
    Browse the repository at this point in the history
  17. video: fbdev: cobalt_lcdfb: Handle return NULL error from devm_ioremap

    [ Upstream commit 4dcd19b ]
    
    Here, If devm_ioremap will fail. It will return NULL.
    Kernel can run into a NULL-pointer dereference.
    This error check will avoid NULL pointer dereference.
    
    Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
    Acked-by: Yoichi Yuasa <yuasa@linux-mips.org>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ArvindYadavCs authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a417ea5 View commit details
    Browse the repository at this point in the history
  18. vfio-pci: Handle error from pci_iomap

    [ Upstream commit e19f32d ]
    
    Here, pci_iomap can fail, handle this case release selected
    pci regions and return -ENOMEM.
    
    Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ArvindYadavCs authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    812a7df View commit details
    Browse the repository at this point in the history
  19. arm64: mm: fix show_pte KERN_CONT fallout

    [ Upstream commit 6ef4fb3 ]
    
    Recent changes made KERN_CONT mandatory for continued lines. In the
    absence of KERN_CONT, a newline may be implicit inserted by the core
    printk code.
    
    In show_pte, we (erroneously) use printk without KERN_CONT for continued
    prints, resulting in output being split across a number of lines, and
    not matching the intended output, e.g.
    
    [ff000000000000] *pgd=00000009f511b003
    , *pud=00000009f4a80003
    , *pmd=0000000000000000
    
    Fix this by using pr_cont() for all the continuations.
    
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Mark Rutland authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    e95ec35 View commit details
    Browse the repository at this point in the history
  20. nvmem: imx-ocotp: Fix wrong register size

    [ Upstream commit 14ba972 ]
    
    All i.MX6 SoCs have an OCOTP Controller with 4kbit fuses. The i.MX6SL is
    an exception and has only 2kbit fuses.
    
    In the TRM for the i.MX6DQ (IMX6QDRM - Rev 2, 06/2014) the fuses size is
    described in chapter 46.1.1 with:
    "32-bit word restricted program and read to 4Kbits of eFuse OTP(512x8)."
    
    In the TRM for the i.MX6SL (IMX6SLRM - Rev 2, 06/2015) the fuses size is
    described in chapter 34.1.1 with:
    "32-bit word restricted program and read to 2 kbit of eFuse OTP(128x8)."
    
    Since the Freescale Linux kernel OCOTP driver works with a fuses size of
    2 kbit for the i.MX6SL, it looks like the TRM is wrong and the formula
    to calculate the correct fuses size has to be 256x8.
    
    Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dnltz authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a752672 View commit details
    Browse the repository at this point in the history
  21. net: usb: asix_devices: add .reset_resume for USB PM

    [ Upstream commit 63dfb0d ]
    
    The USB core may call reset_resume when it fails to resume asix device.
    And USB core can recovery this abnormal resume at low level driver,
    the same .resume at asix driver can work too. Add .reset_resume can
    avoid disconnecting after backing from system resume, and NFS can
    still be mounted after this commit.
    
    Signed-off-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Peter Chen authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2548d89 View commit details
    Browse the repository at this point in the history
  22. ASoC: fsl_ssi: set fifo watermark to more reliable value

    [ Upstream commit 4ee437f ]
    
    The fsl_ssi fifo watermark is by default set to 2 free spaces (i.e.
    activate DMA on FIFO when only 2 spaces are left.)  This means the
    DMA must service the fifo within 2 audio samples, which is just not
    enough time  for many use cases with high data rate.  In many
    configurations the audio channel slips (causing l/r swap in stereo
    configurations, or channel slipping in multi-channel configurations).
    
    This patch gives more breathing room and allows the SSI to operate
    reliably by changing the fifio refill watermark to 8.
    
    There is no change in behavior for older chips (with an 8-deep fifo).
    Only the newer chips with a 15-deep fifo get the new behavior. I
    suspect a new fifo depth setting could be optimized on the older
    chips too, but I have not tested.
    
    Signed-off-by: Caleb Crome <caleb@crome.org>
    Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ccrome authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2909c9c View commit details
    Browse the repository at this point in the history
  23. sh_eth: enable RX descriptor word 0 shift on SH7734

    [ Upstream commit 71eae1c ]
    
    The RX descriptor word 0 on SH7734 has the RFS[9:0] field in bits 16-25
    (bits  0-15 usually used for that are occupied by the packet checksum).
    Thus  we need to set the 'shift_rd0'  field in the SH7734 SoC data...
    
    Fixes: f0e81fe ("net: sh_eth: Add support SH7734")
    Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Sergei Shtylyov authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    f10e206 View commit details
    Browse the repository at this point in the history
  24. ARCv2: IRQ: Call entry/exit functions for chained handlers in MCIP

    [ Upstream commit e51d5d0 ]
    
    It is necessary to call entry/exit functions for parent interrupt
    controllers for proper masking/unmasking of interrupt lines.
    
    Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    kolerov authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    301681d View commit details
    Browse the repository at this point in the history
  25. ALSA: usb-audio: test EP_FLAG_RUNNING at urb completion

    [ Upstream commit 13a6c83 ]
    
    Testing EP_FLAG_RUNNING in snd_complete_urb() before running the completion
    logic allows us to save a few cpu cycles by returning early, skipping the
    pending urb in case the stream was stopped; the stop logic handles the urb
    and sets the completion callbacks to NULL.
    
    Signed-off-by: Ioan-Adrian Ratiu <adi@adirat.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    10ne1 authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    12dac5f View commit details
    Browse the repository at this point in the history
  26. x86/platform/intel-mid: Rename 'spidev' to 'mrfld_spidev'

    [ Upstream commit 159d372 ]
    
    The current implementation supports only Intel Merrifield platforms. Don't mess
    with the rest of the Intel MID family by not registering device with wrong
    properties.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20170102092450.87229-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    andy-shev authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    efa2252 View commit details
    Browse the repository at this point in the history
  27. perf/x86: Set pmu->module in Intel PMU modules

    [ Upstream commit 74545f6 ]
    
    The conversion of Intel PMU drivers into modules did not include reference
    counting. The machine will crash when attempting to  access deleted code
    if an event from a module PMU is started and the module removed before the
    event is destroyed.
    
    i.e. this crashes the machine:
    
    	$ insmod intel-rapl-perf.ko
    	$ perf stat -e power/energy-cores/ -C 0 &
    	$ rmmod intel-rapl-perf.ko
    
    Set THIS_MODULE to pmu->module in Intel module PMUs so that generic code
    can handle reference counting and deny rmmod while an event still exists.
    
    Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Paul Turner <pjt@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1482455860-116269-1-git-send-email-davidcc@google.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    David Carrillo-Cisneros authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    b899142 View commit details
    Browse the repository at this point in the history
  28. ASoC: Intel: bytcr-rt5640: fix settings in internal clock mode

    [ Upstream commit 60448b0 ]
    
    Frequency value of zero did not make sense, use same 24.576MHz
    setting and only change the clock source in idle mode
    
    Suggested-by: Bard Liao <bardliao@realtek.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    plbossart authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    3f0dfa1 View commit details
    Browse the repository at this point in the history
  29. HID: ignore Petzl USB headlamp

    [ Upstream commit 08f9572 ]
    
    This headlamp contains a dummy HID descriptor which pretends to be
    a mouse-like device, but can't be used as a mouse at all.
    
    Reported-by: Lukas Ocilka <lukas.ocilka@suse.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Jiri Kosina authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    3b6f4e2 View commit details
    Browse the repository at this point in the history
  30. scsi: fnic: Avoid sending reset to firmware when another reset is in …

    …progress
    
    [ Upstream commit 9698b6f ]
    
    This fix is to avoid calling fnic_fw_reset_handler through
    fnic_host_reset when a finc reset is alreay in progress.
    
    Signed-off-by: Satish Kharat <satishkh@cisco.com>
    Signed-off-by: Sesidhar Baddela <sebaddel@cisco.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Satish Kharat authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2803ea7 View commit details
    Browse the repository at this point in the history
  31. scsi: snic: Return error code on memory allocation failure

    [ Upstream commit 0371adc ]
    
    If a call to mempool_create_slab_pool() in snic_probe() returns NULL,
    return -ENOMEM to indicate failure. mempool_creat_slab_pool() only fails
    if it cannot allocate memory.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=189061
    
    Reported-by: bianpan2010@ruc.edu.cn
    Signed-off-by: Burak Ok <burak-kernel@bur0k.de>
    Signed-off-by: Andreas Schaertl <andreas.schaertl@fau.de>
    Acked-by: Narsimhulu Musini <nmusini@cisco.com>
    Reviewed-by: Ewan D. Milne <emilne@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Burak Ok authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    5f70407 View commit details
    Browse the repository at this point in the history
  32. scsi: bfa: Increase requested firmware version to 3.2.5.1

    [ Upstream commit 2d1148f ]
    
    bna & bfa firmware version 3.2.5.1 was submitted to linux-firmware on
    Feb 17 19:10:20 2015 -0500 in 0ab54ff ("linux-firmware: Add QLogic BR
    Series Adapter Firmware").
    
    bna was updated to use the newer firmware on Feb 19 16:02:32 2015 -0500 in
    3f307c3 ("bna: Update the Driver and Firmware Version")
    
    bfa was not updated. I presume this was an oversight but it broke support
    for bfa+bna cards such as the following
    	04:00.0 Fibre Channel [0c04]: Brocade Communications Systems, Inc.
    		1010/1020/1007/1741 10Gbps CNA [1657:0014] (rev 01)
    	04:00.1 Fibre Channel [0c04]: Brocade Communications Systems, Inc.
    		1010/1020/1007/1741 10Gbps CNA [1657:0014] (rev 01)
    	04:00.2 Ethernet controller [0200]: Brocade Communications Systems,
    		Inc. 1010/1020/1007/1741 10Gbps CNA [1657:0014] (rev 01)
    	04:00.3 Ethernet controller [0200]: Brocade Communications Systems,
    		Inc. 1010/1020/1007/1741 10Gbps CNA [1657:0014] (rev 01)
    
    Currently, if the bfa module is loaded first, bna fails to probe the
    respective devices with
    [  215.026787] bna: QLogic BR-series 10G Ethernet driver - version: 3.2.25.1
    [  215.043707] bna 0000:04:00.2: bar0 mapped to ffffc90001fc0000, len 262144
    [  215.060656] bna 0000:04:00.2: initialization failed err=1
    [  215.073893] bna 0000:04:00.3: bar0 mapped to ffffc90002040000, len 262144
    [  215.090644] bna 0000:04:00.3: initialization failed err=1
    
    Whereas if bna is loaded first, bfa fails with
    [  249.592109] QLogic BR-series BFA FC/FCOE SCSI driver - version: 3.2.25.0
    [  249.610738] bfa 0000:04:00.0: Running firmware version is incompatible with the driver version
    [  249.833513] bfa 0000:04:00.0: bfa init failed
    [  249.833919] scsi host6: QLogic BR-series FC/FCOE Adapter, hwpath: 0000:04:00.0 driver: 3.2.25.0
    [  249.841446] bfa 0000:04:00.1: Running firmware version is incompatible with the driver version
    [  250.045449] bfa 0000:04:00.1: bfa init failed
    [  250.045962] scsi host7: QLogic BR-series FC/FCOE Adapter, hwpath: 0000:04:00.1 driver: 3.2.25.0
    
    Increase bfa's requested firmware version. Also increase the driver
    version.  I only tested that all of the devices probe without error.
    
    Reported-by: Tim Ehlers <tehlers@gwdg.de>
    Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
    Acked-by: Rasesh Mody <rasesh.mody@cavium.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gobenji authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    23ab274 View commit details
    Browse the repository at this point in the history
  33. ASoC: Intel: Skylake: Release FW ctx in cleanup

    [ Upstream commit bc65a32 ]
    
    Saved firmware ctx was not never released, so release Firmware
    ctx in cleanup routine.
    
    Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
    Acked-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    kpjeeja authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    27ef028 View commit details
    Browse the repository at this point in the history
  34. ASoC: dpcm: Avoid putting stream state to STOP when FE stream is paused

    [ Upstream commit 9f169b9 ]
    
    When multiple front-ends are using the same back-end, putting state of a
    front-end to STOP state upon receiving pause command will result in backend
    stream getting released by DPCM framework unintentionally. In order to
    avoid backend to be released when another active front-end stream is
    present, put the stream state to PAUSED state instead of STOP state.
    
    Signed-off-by: Patrick Lai <plai@codeaurora.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Patrick Lai authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    007dffc View commit details
    Browse the repository at this point in the history
  35. Linux 4.9.41

    gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    db397d9 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2017

  1. parisc: Handle vma's whose context is not current in flush_cache_range

    commit 13d5709 upstream.
    
    In testing James' patch to drivers/parisc/pdc_stable.c, I hit the BUG
    statement in flush_cache_range() during a system shutdown:
    
    kernel BUG at arch/parisc/kernel/cache.c:595!
    CPU: 2 PID: 6532 Comm: kworker/2:0 Not tainted 4.13.0-rc2+ #1
    Workqueue: events free_ioctx
    
     IAOQ[0]: flush_cache_range+0x144/0x148
     IAOQ[1]: flush_cache_page+0x0/0x1a8
     RP(r2): flush_cache_range+0xec/0x148
    Backtrace:
     [<00000000402910ac>] unmap_page_range+0x84/0x880
     [<00000000402918f4>] unmap_single_vma+0x4c/0x60
     [<0000000040291a18>] zap_page_range_single+0x110/0x160
     [<0000000040291c34>] unmap_mapping_range+0x174/0x1a8
     [<000000004026ccd8>] truncate_pagecache+0x50/0xa8
     [<000000004026cd84>] truncate_setsize+0x54/0x70
     [<000000004033d534>] put_aio_ring_file+0x44/0xb0
     [<000000004033d5d8>] aio_free_ring+0x38/0x140
     [<000000004033d714>] free_ioctx+0x34/0xa8
     [<00000000401b0028>] process_one_work+0x1b8/0x4d0
     [<00000000401b04f4>] worker_thread+0x1b4/0x648
     [<00000000401b9128>] kthread+0x1b0/0x208
     [<0000000040150020>] end_fault_vector+0x20/0x28
     [<0000000040639518>] nf_ip_reroute+0x50/0xa8
     [<0000000040638ed0>] nf_ip_route+0x10/0x78
     [<0000000040638c90>] xfrm4_mode_tunnel_input+0x180/0x1f8
    
    CPU: 2 PID: 6532 Comm: kworker/2:0 Not tainted 4.13.0-rc2+ #1
    Workqueue: events free_ioctx
    Backtrace:
     [<0000000040163bf0>] show_stack+0x20/0x38
     [<0000000040688480>] dump_stack+0xa8/0x120
     [<0000000040163dc4>] die_if_kernel+0x19c/0x2b0
     [<0000000040164d0c>] handle_interruption+0xa24/0xa48
    
    This patch modifies flush_cache_range() to handle non current contexts.
    In as much as this occurs infrequently, the simplest approach is to
    flush the entire cache when this happens.
    
    Signed-off-by: John David Anglin <dave.anglin@bell.net>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    danglin44 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    5d23e4f View commit details
    Browse the repository at this point in the history
  2. cgroup: create dfl_root files on subsys registration

    commit 7af608e upstream.
    
    On subsystem registration, css_populate_dir() is not called on the new
    root css, so the interface files for the subsystem on cgrp_dfl_root
    aren't created on registration.  This is a residue from the days when
    cgrp_dfl_root was used only as the parking spot for unused subsystems,
    which no longer is true as it's used as the root for cgroup2.
    
    This is often fine as later operations tend to create them as a part
    of mount (cgroup1) or subtree_control operations (cgroup2); however,
    it's not difficult to mount cgroup2 with the controller interface
    files missing as Waiman found out.
    
    Fix it by invoking css_populate_dir() on the root css on subsys
    registration.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-and-tested-by: Waiman Long <longman@redhat.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    htejun authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4a99eac View commit details
    Browse the repository at this point in the history
  3. cgroup: fix error return value from cgroup_subtree_control()

    commit 3c74541 upstream.
    
    While refactoring, f7b2814 ("cgroup: factor out
    cgroup_{apply|finalize}_control() from
    cgroup_subtree_control_write()") broke error return value from the
    function.  The return value from the last operation is always
    overridden to zero.  Fix it.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    htejun authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    445ee6c View commit details
    Browse the repository at this point in the history
  4. libata: array underflow in ata_find_dev()

    commit 59a5e26 upstream.
    
    My static checker complains that "devno" can be negative, meaning that
    we read before the start of the loop.  I've looked at the code, and I
    think the warning is right.  This come from /proc so it's root only or
    it would be quite a quite a serious bug.  The call tree looks like this:
    
    proc_scsi_write() <- gets id and channel from simple_strtoul()
    -> scsi_add_single_device() <- calls shost->transportt->user_scan()
       -> ata_scsi_user_scan()
          -> ata_find_dev()
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Dan Carpenter authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    804b1a9 View commit details
    Browse the repository at this point in the history
  5. workqueue: restore WQ_UNBOUND/max_active==1 to be ordered

    commit 5c0338c upstream.
    
    The combination of WQ_UNBOUND and max_active == 1 used to imply
    ordered execution.  After NUMA affinity 4c16bd3 ("workqueue:
    implement NUMA affinity for unbound workqueues"), this is no longer
    true due to per-node worker pools.
    
    While the right way to create an ordered workqueue is
    alloc_ordered_workqueue(), the documentation has been misleading for a
    long time and people do use WQ_UNBOUND and max_active == 1 for ordered
    workqueues which can lead to subtle bugs which are very difficult to
    trigger.
    
    It's unlikely that we'd see noticeable performance impact by enforcing
    ordering on WQ_UNBOUND / max_active == 1 workqueues.  Let's
    automatically set __WQ_ORDERED for those workqueues.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Christoph Hellwig <hch@infradead.org>
    Reported-by: Alexei Potashnik <alexei@purestorage.com>
    Fixes: 4c16bd3 ("workqueue: implement NUMA affinity for unbound workqueues")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    htejun authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    61a0adb View commit details
    Browse the repository at this point in the history
  6. iwlwifi: dvm: prevent an out of bounds access

    commit 0b0f934 upstream.
    
    iwlagn_check_ratid_empty takes the tid as a parameter, but
    it doesn't check that it is not IWL_TID_NON_QOS.
    Since IWL_TID_NON_QOS = 8 and iwl_priv::tid_data is an array
    with 8 entries, accessing iwl_priv::tid_data[IWL_TID_NON_QOS]
    is a bad idea.
    This happened in iwlagn_rx_reply_tx. Since
    iwlagn_check_ratid_empty is relevant only to check whether
    we can open A-MPDU, this flow is irrelevant if tid is
    IWL_TID_NON_QOS. Call iwlagn_check_ratid_empty only inside
    the
    	if (tid != IWL_TID_NON_QOS)
    
    a few lines earlier in the function.
    
    Reported-by: Seraphime Kirkovski <kirkseraph@gmail.com>
    Tested-by: Seraphime Kirkovski <kirkseraph@gmail.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    egrumbach authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    de8c332 View commit details
    Browse the repository at this point in the history
  7. brcmfmac: fix memleak due to calling brcmf_sdiod_sgtable_alloc() twice

    commit 5f5d031 upstream.
    
    Due to a bugfix in wireless tree and the commit mentioned below a merge
    was needed which went haywire. So the submitted change resulted in the
    function brcmf_sdiod_sgtable_alloc() being called twice during the probe
    thus leaking the memory of the first call.
    
    Fixes: 4d79289 ("brcmfmac: switch to new platform data")
    Reported-by: Stefan Wahren <stefan.wahren@i2se.com>
    Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
    Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
    Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Arend Van Spriel authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f5214eb View commit details
    Browse the repository at this point in the history
  8. NFSv4: Fix EXCHANGE_ID corrupt verifier issue

    commit fd40559 upstream.
    
    The verifier is allocated on the stack, but the EXCHANGE_ID RPC call was
    changed to be asynchronous by commit 8d89bd7. If we interrrupt
    the call to rpc_wait_for_completion_task(), we can therefore end up
    transmitting random stack contents in lieu of the verifier.
    
    Fixes: 8d89bd7 ("NFS setup async exchange_id")
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    trondmypd authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f7d3e54 View commit details
    Browse the repository at this point in the history
  9. mmc: sdhci-of-at91: force card detect value for non removable devices

    commit 7a1e3f1 upstream.
    
    When the device is non removable, the card detect signal is often used
    for another purpose i.e. muxed to another SoC peripheral or used as a
    GPIO. It could lead to wrong behaviors depending the default value of
    this signal if not muxed to the SDHCI controller.
    
    Fixes: bb5f8ea ("mmc: sdhci-of-at91: introduce driver for the Atmel SDMMC")
    Signed-off-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ldesroches authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    347be00 View commit details
    Browse the repository at this point in the history
  10. device property: Make dev_fwnode() public

    commit e44bb0c upstream.
    
    The function to obtain a fwnode related to a struct device is useful for
    drivers that use the fwnode property API: it allows not being aware of the
    underlying firmware implementation.
    
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Chris Metcalf <cmetcalf@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Sakari Ailus authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    1f32e67 View commit details
    Browse the repository at this point in the history
  11. mmc: core: Fix access to HS400-ES devices

    commit 773dc11 upstream.
    
    HS400-ES devices fail to initialize with the following error messages.
    
    mmc1: power class selection to bus width 8 ddr 0 failed
    mmc1: error -110 whilst initialising MMC card
    
    This was seen on Samsung Chromebook Plus. Code analysis points to
    commit 3d4ef32 ("mmc: core: fix multi-bit bus width without
    high-speed mode"), which attempts to set the bus width for all but
    HS200 devices unconditionally. However, for HS400-ES, the bus width
    is already selected.
    
    Cc: Anssi Hannula <anssi.hannula@bitwise.fi>
    Cc: Douglas Anderson <dianders@chromium.org>
    Cc: Brian Norris <briannorris@chromium.org>
    Fixes: 3d4ef32 ("mmc: core: fix multi-bit bus width ...")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Shawn Lin <shawn.lin@rock-chip.com>
    Tested-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    groeck authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    943281e View commit details
    Browse the repository at this point in the history
  12. mm, mprotect: flush TLB if potentially racing with a parallel reclaim…

    … leaving stale TLB entries
    
    commit 3ea2771 upstream.
    
    Nadav Amit identified a theoritical race between page reclaim and
    mprotect due to TLB flushes being batched outside of the PTL being held.
    
    He described the race as follows:
    
            CPU0                            CPU1
            ----                            ----
                                            user accesses memory using RW PTE
                                            [PTE now cached in TLB]
            try_to_unmap_one()
            ==> ptep_get_and_clear()
            ==> set_tlb_ubc_flush_pending()
                                            mprotect(addr, PROT_READ)
                                            ==> change_pte_range()
                                            ==> [ PTE non-present - no flush ]
    
                                            user writes using cached RW PTE
            ...
    
            try_to_unmap_flush()
    
    The same type of race exists for reads when protecting for PROT_NONE and
    also exists for operations that can leave an old TLB entry behind such
    as munmap, mremap and madvise.
    
    For some operations like mprotect, it's not necessarily a data integrity
    issue but it is a correctness issue as there is a window where an
    mprotect that limits access still allows access.  For munmap, it's
    potentially a data integrity issue although the race is massive as an
    munmap, mmap and return to userspace must all complete between the
    window when reclaim drops the PTL and flushes the TLB.  However, it's
    theoritically possible so handle this issue by flushing the mm if
    reclaim is potentially currently batching TLB flushes.
    
    Other instances where a flush is required for a present pte should be ok
    as either the page lock is held preventing parallel reclaim or a page
    reference count is elevated preventing a parallel free leading to
    corruption.  In the case of page_mkclean there isn't an obvious path
    that userspace could take advantage of without using the operations that
    are guarded by this patch.  Other users such as gup as a race with
    reclaim looks just at PTEs.  huge page variants should be ok as they
    don't race with reclaim.  mincore only looks at PTEs.  userfault also
    should be ok as if a parallel reclaim takes place, it will either fault
    the page back in or read some of the data before the flush occurs
    triggering a fault.
    
    Note that a variant of this patch was acked by Andy Lutomirski but this
    was for the x86 parts on top of his PCID work which didn't make the 4.13
    merge window as expected.  His ack is dropped from this version and
    there will be a follow-on patch on top of PCID that will include his
    ack.
    
    [akpm@linux-foundation.org: tweak comments]
    [akpm@linux-foundation.org: fix spello]
    Link: http://lkml.kernel.org/r/20170717155523.emckq2esjro6hf3z@suse.de
    Reported-by: Nadav Amit <nadav.amit@gmail.com>
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Mel Gorman authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    5a1eef7 View commit details
    Browse the repository at this point in the history
  13. cpuset: fix a deadlock due to incomplete patching of cpusets_enabled()

    commit 89affbf upstream.
    
    In codepaths that use the begin/retry interface for reading
    mems_allowed_seq with irqs disabled, there exists a race condition that
    stalls the patch process after only modifying a subset of the
    static_branch call sites.
    
    This problem manifested itself as a deadlock in the slub allocator,
    inside get_any_partial.  The loop reads mems_allowed_seq value (via
    read_mems_allowed_begin), performs the defrag operation, and then
    verifies the consistency of mem_allowed via the read_mems_allowed_retry
    and the cookie returned by xxx_begin.
    
    The issue here is that both begin and retry first check if cpusets are
    enabled via cpusets_enabled() static branch.  This branch can be
    rewritted dynamically (via cpuset_inc) if a new cpuset is created.  The
    x86 jump label code fully synchronizes across all CPUs for every entry
    it rewrites.  If it rewrites only one of the callsites (specifically the
    one in read_mems_allowed_retry) and then waits for the
    smp_call_function(do_sync_core) to complete while a CPU is inside the
    begin/retry section with IRQs off and the mems_allowed value is changed,
    we can hang.
    
    This is because begin() will always return 0 (since it wasn't patched
    yet) while retry() will test the 0 against the actual value of the seq
    counter.
    
    The fix is to use two different static keys: one for begin
    (pre_enable_key) and one for retry (enable_key).  In cpuset_inc(), we
    first bump the pre_enable key to ensure that cpuset_mems_allowed_begin()
    always return a valid seqcount if are enabling cpusets.  Similarly, when
    disabling cpusets via cpuset_dec(), we first ensure that callers of
    cpuset_mems_allowed_retry() will start ignoring the seqcount value
    before we let cpuset_mems_allowed_begin() return 0.
    
    The relevant stack traces of the two stuck threads:
    
      CPU: 1 PID: 1415 Comm: mkdir Tainted: G L  4.9.36-00104-g540c51286237 #4
      Hardware name: Default string Default string/Hardware, BIOS 4.29.1-20170526215256 05/26/2017
      task: ffff8817f9c28000 task.stack: ffffc9000ffa4000
      RIP: smp_call_function_many+0x1f9/0x260
      Call Trace:
        smp_call_function+0x3b/0x70
        on_each_cpu+0x2f/0x90
        text_poke_bp+0x87/0xd0
        arch_jump_label_transform+0x93/0x100
        __jump_label_update+0x77/0x90
        jump_label_update+0xaa/0xc0
        static_key_slow_inc+0x9e/0xb0
        cpuset_css_online+0x70/0x2e0
        online_css+0x2c/0xa0
        cgroup_apply_control_enable+0x27f/0x3d0
        cgroup_mkdir+0x2b7/0x420
        kernfs_iop_mkdir+0x5a/0x80
        vfs_mkdir+0xf6/0x1a0
        SyS_mkdir+0xb7/0xe0
        entry_SYSCALL_64_fastpath+0x18/0xad
    
      ...
    
      CPU: 2 PID: 1 Comm: init Tainted: G L  4.9.36-00104-g540c51286237 #4
      Hardware name: Default string Default string/Hardware, BIOS 4.29.1-20170526215256 05/26/2017
      task: ffff8818087c0000 task.stack: ffffc90000030000
      RIP: int3+0x39/0x70
      Call Trace:
        <#DB> ? ___slab_alloc+0x28b/0x5a0
        <EOE> ? copy_process.part.40+0xf7/0x1de0
        __slab_alloc.isra.80+0x54/0x90
        copy_process.part.40+0xf7/0x1de0
        copy_process.part.40+0xf7/0x1de0
        kmem_cache_alloc_node+0x8a/0x280
        copy_process.part.40+0xf7/0x1de0
        _do_fork+0xe7/0x6c0
        _raw_spin_unlock_irq+0x2d/0x60
        trace_hardirqs_on_caller+0x136/0x1d0
        entry_SYSCALL_64_fastpath+0x5/0xad
        do_syscall_64+0x27/0x350
        SyS_clone+0x19/0x20
        do_syscall_64+0x60/0x350
        entry_SYSCALL64_slow_path+0x25/0x25
    
    Link: http://lkml.kernel.org/r/20170731040113.14197-1-dmitriyz@waymo.com
    Fixes: 46e700a ("mm, page_alloc: remove unnecessary taking of a seqlock when cpusets are disabled")
    Signed-off-by: Dima Zavin <dmitriyz@waymo.com>
    Reported-by: Cliff Spradlin <cspradlin@waymo.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Christopher Lameter <cl@linux.com>
    Cc: Li Zefan <lizefan@huawei.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dimaz-waymo authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    45a636e View commit details
    Browse the repository at this point in the history
  14. ALSA: hda - Fix speaker output from VAIO VPCL14M1R

    commit 3f3c371 upstream.
    
    Sony VAIO VPCL14M1R needs the quirk to make the speaker working properly.
    
    Tested-by: Dmitriy <mexx400@yandex.ru>
    Signed-off-by: Sergei A. Trusov <sergei.a.trusov@ya.ru>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    STrusov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c531a24 View commit details
    Browse the repository at this point in the history
  15. drm/amdgpu: Fix undue fallthroughs in golden registers initialization

    commit 5694785 upstream.
    
    As I was staring at the si_init_golden_registers code, I noticed that
    the Pitcairn initialization silently falls through the Cape Verde
    initialization, and the Oland initialization falls through the Hainan
    initialization. However there is no comment stating that this is
    intentional, and the radeon driver doesn't have any such fallthrough,
    so I suspect this is not supposed to happen.
    
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Fixes: 62a3755 ("drm/amdgpu: add si implementation v10")
    Cc: Ken Wang <Qingqing.Wang@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: "Marek Olšák" <maraeo@gmail.com>
    Cc: "Christian König" <christian.koenig@amd.com>
    Cc: Flora Cui <Flora.Cui@amd.com>
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jdelvare authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    69f15ff View commit details
    Browse the repository at this point in the history
  16. ASoC: do not close shared backend dailink

    commit b1cd2e3 upstream.
    
    Multiple frontend dailinks may be connected to a backend
    dailink at the same time. When one of frontend dailinks is
    closed, the associated backend dailink should not be closed
    if it is connected to other active frontend dailinks. Change
    ensures that backend dailink is closed only after all
    connected frontend dailinks are closed.
    
    Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
    Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
    Signed-off-by: Patrick Lai <plai@codeaurora.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Banajit Goswami authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    650c763 View commit details
    Browse the repository at this point in the history
  17. KVM: async_pf: make rcu irq exit if not triggered from idle task

    commit 337c017 upstream.
    
     WARNING: CPU: 5 PID: 1242 at kernel/rcu/tree_plugin.h:323 rcu_note_context_switch+0x207/0x6b0
     CPU: 5 PID: 1242 Comm: unity-settings- Not tainted 4.13.0-rc2+ #1
     RIP: 0010:rcu_note_context_switch+0x207/0x6b0
     Call Trace:
      __schedule+0xda/0xba0
      ? kvm_async_pf_task_wait+0x1b2/0x270
      schedule+0x40/0x90
      kvm_async_pf_task_wait+0x1cc/0x270
      ? prepare_to_swait+0x22/0x70
      do_async_page_fault+0x77/0xb0
      ? do_async_page_fault+0x77/0xb0
      async_page_fault+0x28/0x30
     RIP: 0010:__d_lookup_rcu+0x90/0x1e0
    
    I encounter this when trying to stress the async page fault in L1 guest w/
    L2 guests running.
    
    Commit 9b132fb (Add rcu user eqs exception hooks for async page
    fault) adds rcu_irq_enter/exit() to kvm_async_pf_task_wait() to exit cpu
    idle eqs when needed, to protect the code that needs use rcu.  However,
    we need to call the pair even if the function calls schedule(), as seen
    from the above backtrace.
    
    This patch fixes it by informing the RCU subsystem exit/enter the irq
    towards/away from idle for both n.halted and !n.halted.
    
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
    Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Wanpeng Li authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0c609d3 View commit details
    Browse the repository at this point in the history
  18. mm/page_alloc: Remove kernel address exposure in free_reserved_area()

    commit adb1fe9 upstream.
    
    Linus suggested we try to remove some of the low-hanging fruit related
    to kernel address exposure in dmesg.  The only leaks I see on my local
    system are:
    
      Freeing SMP alternatives memory: 32K (ffffffff9e309000 - ffffffff9e311000)
      Freeing initrd memory: 10588K (ffffa0b736b42000 - ffffa0b737599000)
      Freeing unused kernel memory: 3592K (ffffffff9df87000 - ffffffff9e309000)
      Freeing unused kernel memory: 1352K (ffffa0b7288ae000 - ffffa0b728a00000)
      Freeing unused kernel memory: 632K (ffffa0b728d62000 - ffffa0b728e00000)
    
    Linus says:
    
      "I suspect we should just remove [the addresses in the 'Freeing'
       messages]. I'm sure they are useful in theory, but I suspect they
       were more useful back when the whole "free init memory" was
       originally done.
    
       These days, if we have a use-after-free, I suspect the init-mem
       situation is the easiest situation by far. Compared to all the dynamic
       allocations which are much more likely to show it anyway. So having
       debug output for that case is likely not all that productive."
    
    With this patch the freeing messages now look like this:
    
      Freeing SMP alternatives memory: 32K
      Freeing initrd memory: 10588K
      Freeing unused kernel memory: 3592K
      Freeing unused kernel memory: 1352K
      Freeing unused kernel memory: 632K
    
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/6836ff90c45b71d38e5d4405aec56fa9e5d1d4b2.1477405374.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Kees Cook <keescook@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jpoimboe authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    7b95b74 View commit details
    Browse the repository at this point in the history
  19. timers: Fix overflow in get_next_timer_interrupt

    commit 34f41c0 upstream.
    
    For e.g. HZ=100, timer being 430 jiffies in the future, and 32 bit
    unsigned int, there is an overflow on unsigned int right-hand side
    of the expression which results with wrong values being returned.
    
    Type cast the multiplier to 64bit to avoid that issue.
    
    Fixes: 46c8f0b ("timers: Fix get_next_timer_interrupt() computation")
    Signed-off-by: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nokia.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
    Cc: khilman@baylibre.com
    Cc: akpm@linux-foundation.org
    Link: http://lkml.kernel.org/r/a7900f04-2a21-c9fd-67be-ab334d459ee5@nokia.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    matijaGP authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    9ef8b23 View commit details
    Browse the repository at this point in the history
  20. powerpc/tm: Fix saving of TM SPRs in core dump

    commit cd63f3c upstream.
    
    Currently flush_tmregs_to_thread() does not save the TM SPRs (TFHAR,
    TFIAR, TEXASR) to the thread struct, unless the process is currently
    inside a suspended transaction.
    
    If the process is core dumping, and the TM SPRs have changed since the
    last time the process was context switched, then we will save stale
    values of the TM SPRs to the core dump.
    
    Fix it by saving the live register state to the thread struct in that
    case.
    
    Fixes: 08e1c01 ("powerpc/ptrace: Enable support for TM SPR state")
    Signed-off-by: Gustavo Romero <gromero@linux.vnet.ibm.com>
    Reviewed-by: Cyril Bur <cyrilbur@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Gustavo Romero authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    8164692 View commit details
    Browse the repository at this point in the history
  21. powerpc/64: Fix __check_irq_replay missing decrementer interrupt

    commit 3db40c3 upstream.
    
    If the decrementer wraps again and de-asserts the decrementer
    exception while hard-disabled, __check_irq_replay() has a test to
    notice the wrap when interrupts are re-enabled.
    
    The decrementer check must be done when clearing the PACA_IRQ_HARD_DIS
    flag, not when the PACA_IRQ_DEC flag is tested. Previously this worked
    because the decrementer interrupt was always the first one checked
    after clearing the hard disable flag, but HMI check was moved ahead of
    that, which introduced this bug.
    
    This can cause a missed decrementer interrupt if we soft-disable
    interrupts then take an HMI which is recorded in irq_happened, then
    hard-disable interrupts for > 4s to wrap the decrementer.
    
    Fixes: e0e0d6b ("powerpc/64: Replay hypervisor maintenance interrupt first")
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    npiggin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    03ebdd1 View commit details
    Browse the repository at this point in the history
  22. iommu/amd: Enable ga_log_intr when enabling guest_mode

    commit efe6f24 upstream.
    
    IRTE[GALogIntr] bit should set when enabling guest_mode, which enables
    IOMMU to generate entry in GALog when IRTE[IsRun] is not set, and send
    an interrupt to notify IOMMU driver.
    
    Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Cc: Joerg Roedel <jroedel@suse.de>
    Fixes: d98de49 ('iommu/amd: Enable vAPIC interrupt remapping mode by default')
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ssuthiku-amd authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    be5c6ef View commit details
    Browse the repository at this point in the history
  23. gpiolib: skip unwanted events, don't convert them to opposite edge

    commit df1e76f upstream.
    
    The previous fix for filtering out of unwatched events was not entirely
    correct. Instead of skipping the events we don't want, they are now
    interpreted as events with opposing edge.
    
    In order to fix it: always read the GPIO line value on interrupt and
    only emit the event if it corresponds with the event type we requested.
    
    Fixes: ad537b8 ("gpiolib: fix filtering out unwanted events")
    Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    brgl authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    b680e22 View commit details
    Browse the repository at this point in the history
  24. ext4: fix SEEK_HOLE/SEEK_DATA for blocksize < pagesize

    commit fcf5ea1 upstream.
    
    ext4_find_unwritten_pgoff() does not properly handle a situation when
    starting index is in the middle of a page and blocksize < pagesize. The
    following command shows the bug on filesystem with 1k blocksize:
    
      xfs_io -f -c "falloc 0 4k" \
                -c "pwrite 1k 1k" \
                -c "pwrite 3k 1k" \
                -c "seek -a -r 0" foo
    
    In this example, neither lseek(fd, 1024, SEEK_HOLE) nor lseek(fd, 2048,
    SEEK_DATA) will return the correct result.
    
    Fix the problem by neglecting buffers in a page before starting offset.
    
    Reported-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jankara authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0814c3a View commit details
    Browse the repository at this point in the history
  25. ext4: fix overflow caused by missing cast in ext4_resize_fs()

    commit aec5175 upstream.
    
    On a 32-bit platform, the value of n_blcoks_count may be wrong during
    the file system is resized to size larger than 2^32 blocks.  This may
    caused the superblock being corrupted with zero blocks count.
    
    Fixes: 1c6bd71
    Signed-off-by: Jerry Lee <jerrylee@qnap.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Jerry Lee authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    12353a0 View commit details
    Browse the repository at this point in the history
  26. ARM: dts: armada-38x: Fix irq type for pca955

    commit 8d45141 upstream.
    
    As written in the datasheet the PCA955 can only handle low level irq and
    not edge irq.
    
    Without this fix the interrupt is not usable for pca955: the gpio-pca953x
    driver already set the irq type as low level which is incompatible with
    edge type, then the kernel prevents using the interrupt:
    
    "irq: type mismatch, failed to map hwirq-18 for
    /soc/internal-regs/gpio@18100!"
    
    Fixes: 928413b ("ARM: mvebu: Add Armada 388 General Purpose
    Development Board support")
    Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gclement authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    ff603e0 View commit details
    Browse the repository at this point in the history
  27. ARM: dts: tango4: Request RGMII RX and TX clock delays

    commit 985333b upstream.
    
    RX and TX clock delays are required. Request them explicitly.
    
    Fixes: cad008b ("ARM: dts: tango4: Initial device trees")
    Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Marc Gonzalez authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4f35448 View commit details
    Browse the repository at this point in the history
  28. media: platform: davinci: return -EINVAL for VPFE_CMD_S_CCDC_RAW_PARA…

    …MS ioctl
    
    commit da05d52 upstream.
    
    this patch makes sure VPFE_CMD_S_CCDC_RAW_PARAMS ioctl no longer works
    for vpfe_capture driver with a minimal patch suitable for backporting.
    
    - This ioctl was never in public api and was only defined in kernel header.
    - The function set_params constantly mixes up pointers and phys_addr_t
      numbers.
    - This is part of a 'VPFE_CMD_S_CCDC_RAW_PARAMS' ioctl command that is
      described as an 'experimental ioctl that will change in future kernels'.
    - The code to allocate the table never gets called after we copy_from_user
      the user input over the kernel settings, and then compare them
      for inequality.
    - We then go on to use an address provided by user space as both the
      __user pointer for input and pass it through phys_to_virt to come up
      with a kernel pointer to copy the data to. This looks like a trivially
      exploitable root hole.
    
    Due to these reasons we make sure this ioctl now returns -EINVAL and backport
    this patch as far as possible.
    
    Fixes: 5f15fbb ("V4L/DVB (12251): v4l: dm644x ccdc module for vpfe capture driver")
    
    Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    prabhakarlad authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    733d7ab View commit details
    Browse the repository at this point in the history
  29. iscsi-target: Fix initial login PDU asynchronous socket close OOPs

    commit 25cdda9 upstream.
    
    This patch fixes a OOPs originally introduced by:
    
       commit bb04835
       Author: Nicholas Bellinger <nab@linux-iscsi.org>
       Date:   Thu Sep 5 14:54:04 2013 -0700
    
       iscsi-target: Add sk->sk_state_change to cleanup after TCP failure
    
    which would trigger a NULL pointer dereference when a TCP connection
    was closed asynchronously via iscsi_target_sk_state_change(), but only
    when the initial PDU processing in iscsi_target_do_login() from iscsi_np
    process context was blocked waiting for backend I/O to complete.
    
    To address this issue, this patch makes the following changes.
    
    First, it introduces some common helper functions used for checking
    socket closing state, checking login_flags, and atomically checking
    socket closing state + setting login_flags.
    
    Second, it introduces a LOGIN_FLAGS_INITIAL_PDU bit to know when a TCP
    connection has dropped via iscsi_target_sk_state_change(), but the
    initial PDU processing within iscsi_target_do_login() in iscsi_np
    context is still running.  For this case, it sets LOGIN_FLAGS_CLOSED,
    but doesn't invoke schedule_delayed_work().
    
    The original NULL pointer dereference case reported by MNC is now handled
    by iscsi_target_do_login() doing a iscsi_target_sk_check_close() before
    transitioning to FFP to determine when the socket has already closed,
    or iscsi_target_start_negotiation() if the login needs to exchange
    more PDUs (eg: iscsi_target_do_login returned 0) but the socket has
    closed.  For both of these cases, the cleanup up of remaining connection
    resources will occur in iscsi_target_start_negotiation() from iscsi_np
    process context once the failure is detected.
    
    Finally, to handle to case where iscsi_target_sk_state_change() is
    called after the initial PDU procesing is complete, it now invokes
    conn->login_work -> iscsi_target_do_login_rx() to perform cleanup once
    existing iscsi_target_sk_check_close() checks detect connection failure.
    For this case, the cleanup of remaining connection resources will occur
    in iscsi_target_do_login_rx() from delayed workqueue process context
    once the failure is detected.
    
    Reported-by: Mike Christie <mchristi@redhat.com>
    Reviewed-by: Mike Christie <mchristi@redhat.com>
    Tested-by: Mike Christie <mchristi@redhat.com>
    Cc: Mike Christie <mchristi@redhat.com>
    Reported-by: Hannes Reinecke <hare@suse.com>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Sagi Grimberg <sagi@grimberg.me>
    Cc: Varun Prakash <varun@chelsio.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nablio3000 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bdabf09 View commit details
    Browse the repository at this point in the history
  30. mmc: dw_mmc: Use device_property_read instead of of_property_read

    commit 852ff5f upstream.
    
    Using the device_property interfaces allows the dw_mmc driver to work
    on platforms which run on either device tree or ACPI.
    
    Signed-off-by: David Woods <dwoods@mellanox.com>
    Reviewed-by: Chris Metcalf <cmetcalf@mellanox.com>
    Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dwoods2 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    baf4ad0 View commit details
    Browse the repository at this point in the history
  31. mmc: core: Use device_property_read instead of of_property_read

    commit 73a47a9 upstream.
    
    Using the device_property interfaces allows mmc drivers to work
    on platforms which run on either device tree or ACPI.
    
    Signed-off-by: David Woods <dwoods@mellanox.com>
    Reviewed-by: Chris Metcalf <cmetcalf@mellanox.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dwoods2 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    e92add2 View commit details
    Browse the repository at this point in the history
  32. media: lirc: LIRC_GET_REC_RESOLUTION should return microseconds

    commit 9f5039b upstream.
    
    Since commit e8f4818 ("[media] lirc: advertise
    LIRC_CAN_GET_REC_RESOLUTION and improve") lircd uses the ioctl
    LIRC_GET_REC_RESOLUTION to determine the shortest pulse or space that
    the hardware can detect. This breaks decoding in lirc because lircd
    expects the answer in microseconds, but nanoseconds is returned.
    
    Reported-by: Derek <user.vdr@gmail.com>
    Tested-by: Derek <user.vdr@gmail.com>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    seanyoung authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c14e327 View commit details
    Browse the repository at this point in the history
  33. f2fs: sanity check checkpoint segno and blkoff

    commit 15d3042 upstream.
    
    Make sure segno and blkoff read from raw image are valid.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Jin Qian <jinqian@google.com>
    [Jaegeuk Kim: adjust minor coding style]
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    [AmitP: Found in Android Security bulletin for Aug'17, fixes CVE-2017-10663]
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Jin Qian authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0f442c5 View commit details
    Browse the repository at this point in the history
  34. Btrfs: fix early ENOSPC due to delalloc

    commit 17024ad upstream.
    
    If a lot of metadata is reserved for outstanding delayed allocations, we
    rely on shrink_delalloc() to reclaim metadata space in order to fulfill
    reservation tickets. However, shrink_delalloc() has a shortcut where if
    it determines that space can be overcommitted, it will stop early. This
    made sense before the ticketed enospc system, but now it means that
    shrink_delalloc() will often not reclaim enough space to fulfill any
    tickets, leading to an early ENOSPC. (Reservation tickets don't care
    about being able to overcommit, they need every byte accounted for.)
    
    Fix it by getting rid of the shortcut so that shrink_delalloc() reclaims
    all of the metadata it is supposed to. This fixes early ENOSPCs we were
    seeing when doing a btrfs receive to populate a new filesystem, as well
    as early ENOSPCs Christoph saw when doing a big cp -r onto Btrfs.
    
    Fixes: 957780e ("Btrfs: introduce ticketed enospc infrastructure")
    Tested-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.name>
    Reviewed-by: Josef Bacik <jbacik@fb.com>
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    osandov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    3a63729 View commit details
    Browse the repository at this point in the history
  35. saa7164: fix double fetch PCIe access condition

    commit 6fb05e0 upstream.
    
    Avoid a double fetch by reusing the values from the prior transfer.
    
    Originally reported via https://bugzilla.kernel.org/show_bug.cgi?id=195559
    
    Thanks to Pengfei Wang <wpengfeinudt@gmail.com> for reporting.
    
    Signed-off-by: Steven Toth <stoth@kernellabs.com>
    Reported-by: Pengfei Wang <wpengfeinudt@gmail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Cc: Eduardo Valentin <eduval@amazon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    stoth68000 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    12d17d7 View commit details
    Browse the repository at this point in the history
  36. tcp_bbr: cut pacing rate only if filled pipe

    [ Upstream commit 4aea287 ]
    
    In bbr_set_pacing_rate(), which decides whether to cut the pacing
    rate, there was some code that considered exiting STARTUP to be
    equivalent to the notion of filling the pipe (i.e.,
    bbr_full_bw_reached()). Specifically, as the code was structured,
    exiting STARTUP and going into PROBE_RTT could cause us to cut the
    pacing rate down to something silly and low, based on whatever
    bandwidth samples we've had so far, when it's possible that all of
    them have been small app-limited bandwidth samples that are not
    representative of the bandwidth available in the path. (The code was
    correct at the time it was written, but the state machine changed
    without this spot being adjusted correspondingly.)
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    73520d3 View commit details
    Browse the repository at this point in the history
  37. tcp_bbr: introduce bbr_bw_to_pacing_rate() helper

    [ Upstream commit f19fd62 ]
    
    Introduce a helper to convert a BBR bandwidth and gain factor to a
    pacing rate in bytes per second. This is a pure refactor, but is
    needed for two following fixes.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    ec78968 View commit details
    Browse the repository at this point in the history
  38. tcp_bbr: introduce bbr_init_pacing_rate_from_rtt() helper

    [ Upstream commit 79135b8 ]
    
    Introduce a helper to initialize the BBR pacing rate unconditionally,
    based on the current cwnd and RTT estimate. This is a pure refactor,
    but is needed for two following fixes.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0c0ede3 View commit details
    Browse the repository at this point in the history
  39. tcp_bbr: remove sk_pacing_rate=0 transient during init

    [ Upstream commit 1d3648e ]
    
    Fix a corner case noticed by Eric Dumazet, where BBR's setting
    sk->sk_pacing_rate to 0 during initialization could theoretically
    cause packets in the sending host to hang if there were packets "in
    flight" in the pacing infrastructure at the time the BBR congestion
    control state is initialized. This could occur if the pacing
    infrastructure happened to race with bbr_init() in a way such that the
    pacer read the 0 rather than the immediately following non-zero pacing
    rate.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Reported-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    2e6b237 View commit details
    Browse the repository at this point in the history
  40. tcp_bbr: init pacing rate on first RTT sample

    [ Upstream commit 3298456 ]
    
    Fixes the following behavior: for connections that had no RTT sample
    at the time of initializing congestion control, BBR was initializing
    the pacing rate to a high nominal rate (based an a guess of RTT=1ms,
    in case this is LAN traffic). Then BBR never adjusted the pacing rate
    downward upon obtaining an actual RTT sample, if the connection never
    filled the pipe (e.g. all sends were small app-limited writes()).
    
    This fix adjusts the pacing rate upon obtaining the first RTT sample.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0cd73c4 View commit details
    Browse the repository at this point in the history
  41. ipv4: ipv6: initialize treq->txhash in cookie_v[46]_check()

    [ Upstream commit 18bcf29 ]
    
    KMSAN reported use of uninitialized memory in skb_set_hash_from_sk(),
    which originated from the TCP request socket created in
    cookie_v6_check():
    
     ==================================================================
     BUG: KMSAN: use of uninitialized memory in tcp_transmit_skb+0xf77/0x3ec0
     CPU: 1 PID: 2949 Comm: syz-execprog Not tainted 4.11.0-rc5+ #2931
     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
     TCP: request_sock_TCPv6: Possible SYN flooding on port 20028. Sending cookies.  Check SNMP counters.
     Call Trace:
      <IRQ>
      __dump_stack lib/dump_stack.c:16
      dump_stack+0x172/0x1c0 lib/dump_stack.c:52
      kmsan_report+0x12a/0x180 mm/kmsan/kmsan.c:927
      __msan_warning_32+0x61/0xb0 mm/kmsan/kmsan_instr.c:469
      skb_set_hash_from_sk ./include/net/sock.h:2011
      tcp_transmit_skb+0xf77/0x3ec0 net/ipv4/tcp_output.c:983
      tcp_send_ack+0x75b/0x830 net/ipv4/tcp_output.c:3493
      tcp_delack_timer_handler+0x9a6/0xb90 net/ipv4/tcp_timer.c:284
      tcp_delack_timer+0x1b0/0x310 net/ipv4/tcp_timer.c:309
      call_timer_fn+0x240/0x520 kernel/time/timer.c:1268
      expire_timers kernel/time/timer.c:1307
      __run_timers+0xc13/0xf10 kernel/time/timer.c:1601
      run_timer_softirq+0x36/0xa0 kernel/time/timer.c:1614
      __do_softirq+0x485/0x942 kernel/softirq.c:284
      invoke_softirq kernel/softirq.c:364
      irq_exit+0x1fa/0x230 kernel/softirq.c:405
      exiting_irq+0xe/0x10 ./arch/x86/include/asm/apic.h:657
      smp_apic_timer_interrupt+0x5a/0x80 arch/x86/kernel/apic/apic.c:966
      apic_timer_interrupt+0x86/0x90 arch/x86/entry/entry_64.S:489
     RIP: 0010:native_restore_fl ./arch/x86/include/asm/irqflags.h:36
     RIP: 0010:arch_local_irq_restore ./arch/x86/include/asm/irqflags.h:77
     RIP: 0010:__msan_poison_alloca+0xed/0x120 mm/kmsan/kmsan_instr.c:440
     RSP: 0018:ffff880024917cd8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff10
     RAX: 0000000000000246 RBX: ffff8800224c0000 RCX: 0000000000000005
     RDX: 0000000000000004 RSI: ffff880000000000 RDI: ffffea0000b6d770
     RBP: ffff880024917d58 R08: 0000000000000dd8 R09: 0000000000000004
     R10: 0000160000000000 R11: 0000000000000000 R12: ffffffff85abf810
     R13: ffff880024917dd8 R14: 0000000000000010 R15: ffffffff81cabde4
      </IRQ>
      poll_select_copy_remaining+0xac/0x6b0 fs/select.c:293
      SYSC_select+0x4b4/0x4e0 fs/select.c:653
      SyS_select+0x76/0xa0 fs/select.c:634
      entry_SYSCALL_64_fastpath+0x13/0x94 arch/x86/entry/entry_64.S:204
     RIP: 0033:0x4597e7
     RSP: 002b:000000c420037ee0 EFLAGS: 00000246 ORIG_RAX: 0000000000000017
     RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004597e7
     RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
     RBP: 000000c420037ef0 R08: 000000c420037ee0 R09: 0000000000000059
     R10: 0000000000000000 R11: 0000000000000246 R12: 000000000042dc20
     R13: 00000000000000f3 R14: 0000000000000030 R15: 0000000000000003
     chained origin:
      save_stack_trace+0x37/0x40 arch/x86/kernel/stacktrace.c:59
      kmsan_save_stack_with_flags mm/kmsan/kmsan.c:302
      kmsan_save_stack mm/kmsan/kmsan.c:317
      kmsan_internal_chain_origin+0x12a/0x1f0 mm/kmsan/kmsan.c:547
      __msan_store_shadow_origin_4+0xac/0x110 mm/kmsan/kmsan_instr.c:259
      tcp_create_openreq_child+0x709/0x1ae0 net/ipv4/tcp_minisocks.c:472
      tcp_v6_syn_recv_sock+0x7eb/0x2a30 net/ipv6/tcp_ipv6.c:1103
      tcp_get_cookie_sock+0x136/0x5f0 net/ipv4/syncookies.c:212
      cookie_v6_check+0x17a9/0x1b50 net/ipv6/syncookies.c:245
      tcp_v6_cookie_check net/ipv6/tcp_ipv6.c:989
      tcp_v6_do_rcv+0xdd8/0x1c60 net/ipv6/tcp_ipv6.c:1298
      tcp_v6_rcv+0x41a3/0x4f00 net/ipv6/tcp_ipv6.c:1487
      ip6_input_finish+0x82f/0x1ee0 net/ipv6/ip6_input.c:279
      NF_HOOK ./include/linux/netfilter.h:257
      ip6_input+0x239/0x290 net/ipv6/ip6_input.c:322
      dst_input ./include/net/dst.h:492
      ip6_rcv_finish net/ipv6/ip6_input.c:69
      NF_HOOK ./include/linux/netfilter.h:257
      ipv6_rcv+0x1dbd/0x22e0 net/ipv6/ip6_input.c:203
      __netif_receive_skb_core+0x2f6f/0x3a20 net/core/dev.c:4208
      __netif_receive_skb net/core/dev.c:4246
      process_backlog+0x667/0xba0 net/core/dev.c:4866
      napi_poll net/core/dev.c:5268
      net_rx_action+0xc95/0x1590 net/core/dev.c:5333
      __do_softirq+0x485/0x942 kernel/softirq.c:284
     origin:
      save_stack_trace+0x37/0x40 arch/x86/kernel/stacktrace.c:59
      kmsan_save_stack_with_flags mm/kmsan/kmsan.c:302
      kmsan_internal_poison_shadow+0xb1/0x1a0 mm/kmsan/kmsan.c:198
      kmsan_kmalloc+0x7f/0xe0 mm/kmsan/kmsan.c:337
      kmem_cache_alloc+0x1c2/0x1e0 mm/slub.c:2766
      reqsk_alloc ./include/net/request_sock.h:87
      inet_reqsk_alloc+0xa4/0x5b0 net/ipv4/tcp_input.c:6200
      cookie_v6_check+0x4f4/0x1b50 net/ipv6/syncookies.c:169
      tcp_v6_cookie_check net/ipv6/tcp_ipv6.c:989
      tcp_v6_do_rcv+0xdd8/0x1c60 net/ipv6/tcp_ipv6.c:1298
      tcp_v6_rcv+0x41a3/0x4f00 net/ipv6/tcp_ipv6.c:1487
      ip6_input_finish+0x82f/0x1ee0 net/ipv6/ip6_input.c:279
      NF_HOOK ./include/linux/netfilter.h:257
      ip6_input+0x239/0x290 net/ipv6/ip6_input.c:322
      dst_input ./include/net/dst.h:492
      ip6_rcv_finish net/ipv6/ip6_input.c:69
      NF_HOOK ./include/linux/netfilter.h:257
      ipv6_rcv+0x1dbd/0x22e0 net/ipv6/ip6_input.c:203
      __netif_receive_skb_core+0x2f6f/0x3a20 net/core/dev.c:4208
      __netif_receive_skb net/core/dev.c:4246
      process_backlog+0x667/0xba0 net/core/dev.c:4866
      napi_poll net/core/dev.c:5268
      net_rx_action+0xc95/0x1590 net/core/dev.c:5333
      __do_softirq+0x485/0x942 kernel/softirq.c:284
     ==================================================================
    
    Similar error is reported for cookie_v4_check().
    
    Fixes: 58d607d ("tcp: provide skb->hash to synack packets")
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ramosian-glider authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    a62bc8d View commit details
    Browse the repository at this point in the history
  42. net: Zero terminate ifr_name in dev_ifname().

    [ Upstream commit 6367911 ]
    
    The ifr.ifr_name is passed around and assumed to be NULL terminated.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0b83249 View commit details
    Browse the repository at this point in the history
  43. ipv6: avoid overflow of offset in ip6_find_1stfragopt

    [ Upstream commit 6399f1f ]
    
    In some cases, offset can overflow and can cause an infinite loop in
    ip6_find_1stfragopt(). Make it unsigned int to prevent the overflow, and
    cap it at IPV6_MAXPLEN, since packets larger than that should be invalid.
    
    This problem has been here since before the beginning of git history.
    
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    qsn authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4a2ffe1 View commit details
    Browse the repository at this point in the history
  44. net: dsa: b53: Add missing ARL entries for BCM53125

    [ Upstream commit be35e8c ]
    
    The BCM53125 entry was missing an arl_entries member which would
    basically prevent the ARL search from terminating properly. This switch
    has 4 ARL entries, so add that.
    
    Fixes: 1da6df8 ("net: dsa: b53: Implement ARL add/del/dump operations")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ffainelli authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    5a2d511 View commit details
    Browse the repository at this point in the history
  45. ipv4: initialize fib_trie prior to register_netdev_notifier call.

    [ Upstream commit 8799a22 ]
    
    Net stack initialization currently initializes fib-trie after the
    first call to netdevice_notifier() call. In fact fib_trie initialization
    needs to happen before first rtnl_register(). It does not cause any problem
    since there are no devices UP at this moment, but trying to bring 'lo'
    UP at initialization would make this assumption wrong and exposes the issue.
    
    Fixes following crash
    
     Call Trace:
      ? alternate_node_alloc+0x76/0xa0
      fib_table_insert+0x1b7/0x4b0
      fib_magic.isra.17+0xea/0x120
      fib_add_ifaddr+0x7b/0x190
      fib_netdev_event+0xc0/0x130
      register_netdevice_notifier+0x1c1/0x1d0
      ip_fib_init+0x72/0x85
      ip_rt_init+0x187/0x1e9
      ip_init+0xe/0x1a
      inet_init+0x171/0x26c
      ? ipv4_offload_init+0x66/0x66
      do_one_initcall+0x43/0x160
      kernel_init_freeable+0x191/0x219
      ? rest_init+0x80/0x80
      kernel_init+0xe/0x150
      ret_from_fork+0x22/0x30
     Code: f6 46 23 04 74 86 4c 89 f7 e8 ae 45 01 00 49 89 c7 4d 85 ff 0f 85 7b ff ff ff 31 db eb 08 4c 89 ff e8 16 47 01 00 48 8b 44 24 38 <45> 8b 6e 14 4d 63 76 74 48 89 04 24 0f 1f 44 00 00 48 83 c4 08
     RIP: kmem_cache_alloc+0xcf/0x1c0 RSP: ffff9b1500017c28
     CR2: 0000000000000014
    
    Fixes: 7b1a74f ("[NETNS]: Refactor fib initialization so it can handle multiple namespaces.")
    Fixes: 7f9b805 ("[IPV4]: fib hash|trie initialization")
    
    Signed-off-by: Mahesh Bandewar <maheshb@google.com>
    Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Mahesh Bandewar authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0c47f11 View commit details
    Browse the repository at this point in the history
  46. rtnetlink: allocate more memory for dev_set_mac_address()

    [ Upstream commit 153711f ]
    
    virtnet_set_mac_address() interprets mac address as struct
    sockaddr, but upper layer only allocates dev->addr_len
    which is ETH_ALEN + sizeof(sa_family_t) in this case.
    
    We lack a unified definition for mac address, so just fix
    the upper layer, this also allows drivers to interpret it
    to struct sockaddr freely.
    
    Reported-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    congwang authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    cda2bc9 View commit details
    Browse the repository at this point in the history
  47. mcs7780: Fix initialization when CONFIG_VMAP_STACK is enabled

    [ Upstream commit 9476d39 ]
    
    DMA transfers are not allowed to buffers that are on the stack.
    Therefore allocate a buffer to store the result of usb_control_message().
    
    Fixes these bugreports:
    https://bugzilla.kernel.org/show_bug.cgi?id=195217
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1421387
    https://bugzilla.redhat.com/show_bug.cgi?id=1427398
    
    Shortened kernel backtrace from 4.11.9-200.fc25.x86_64:
    kernel: ------------[ cut here ]------------
    kernel: WARNING: CPU: 3 PID: 2957 at drivers/usb/core/hcd.c:1587
    kernel: transfer buffer not dma capable
    kernel: Call Trace:
    kernel: dump_stack+0x63/0x86
    kernel: __warn+0xcb/0xf0
    kernel: warn_slowpath_fmt+0x5a/0x80
    kernel: usb_hcd_map_urb_for_dma+0x37f/0x570
    kernel: ? try_to_del_timer_sync+0x53/0x80
    kernel: usb_hcd_submit_urb+0x34e/0xb90
    kernel: ? schedule_timeout+0x17e/0x300
    kernel: ? del_timer_sync+0x50/0x50
    kernel: ? __slab_free+0xa9/0x300
    kernel: usb_submit_urb+0x2f4/0x560
    kernel: ? urb_destroy+0x24/0x30
    kernel: usb_start_wait_urb+0x6e/0x170
    kernel: usb_control_msg+0xdc/0x120
    kernel: mcs_get_reg+0x36/0x40 [mcs7780]
    kernel: mcs_net_open+0xb5/0x5c0 [mcs7780]
    ...
    
    Regression goes back to 4.9, so it's a good candidate for -stable.
    Though it's the decision of the maintainer.
    
    Thanks to Dan Williams for adding the "transfer buffer not dma capable"
    warning in the first place. It instantly pointed me in the right direction.
    
    Patch has been tested with transferring data from a Polar watch.
    
    Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    thomasjfox authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    59e76ed View commit details
    Browse the repository at this point in the history
  48. openvswitch: fix potential out of bound access in parse_ct

    [ Upstream commit 69ec932 ]
    
    Before the 'type' is validated, we shouldn't use it to fetch the
    ovs_ct_attr_lens's minlen and maxlen, else, out of bound access
    may happen.
    
    Fixes: 7f8a436 ("openvswitch: Add conntrack action")
    Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
    Acked-by: Pravin B Shelar <pshelar@ovn.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Liping Zhang authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    d53ff38 View commit details
    Browse the repository at this point in the history
  49. packet: fix use-after-free in prb_retire_rx_blk_timer_expired()

    [ Upstream commit c800aaf ]
    
    There are multiple reports showing we have a use-after-free in
    the timer prb_retire_rx_blk_timer_expired(), where we use struct
    tpacket_kbdq_core::pkbdq, a pg_vec, after it gets freed by
    free_pg_vec().
    
    The interesting part is it is not freed via packet_release() but
    via packet_setsockopt(), which means we are not closing the socket.
    Looking into the big and fat function packet_set_ring(), this could
    happen if we satisfy the following conditions:
    
    1. closing == 0, not on packet_release() path
    2. req->tp_block_nr == 0, we don't allocate a new pg_vec
    3. rx_ring->pg_vec is already set as V3, which means we already called
       packet_set_ring() wtih req->tp_block_nr > 0 previously
    4. req->tp_frame_nr == 0, pass sanity check
    5. po->mapped == 0, never called mmap()
    
    In this scenario we are clearing the old rx_ring->pg_vec, so we need
    to free this pg_vec, but we don't stop the timer on this path because
    of closing==0.
    
    The timer has to be stopped as long as we need to free pg_vec, therefore
    the check on closing!=0 is wrong, we should check pg_vec!=NULL instead.
    
    Thanks to liujian for testing different fixes.
    
    Reported-by: alexander.levin@verizon.com
    Reported-by: Dave Jones <davej@codemonkey.org.uk>
    Reported-by: liujian (CE) <liujian56@huawei.com>
    Tested-by: liujian (CE) <liujian56@huawei.com>
    Cc: Ding Tianhong <dingtianhong@huawei.com>
    Cc: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    congwang authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    47f3bf6 View commit details
    Browse the repository at this point in the history
  50. ipv6: Don't increase IPSTATS_MIB_FRAGFAILS twice in ip6_fragment()

    [ Upstream commit afce615 ]
    
    RFC 2465 defines ipv6IfStatsOutFragFails as:
    
    	"The number of IPv6 datagrams that have been discarded
    	 because they needed to be fragmented at this output
    	 interface but could not be."
    
    The existing implementation, instead, would increase the counter
    twice in case we fail to allocate room for single fragments:
    once for the fragment, once for the datagram.
    
    This didn't look intentional though. In one of the two affected
    affected failure paths, the double increase was simply a result
    of a new 'goto fail' statement, introduced to avoid a skb leak.
    The other path appears to be affected since at least 2.6.12-rc2.
    
    Reported-by: Sabrina Dubroca <sdubroca@redhat.com>
    Fixes: 1d325d2 ("ipv6: ip6_fragment: fix headroom tests and skb leak")
    Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    sbrivio-rh authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    23a91c8 View commit details
    Browse the repository at this point in the history
  51. net: ethernet: nb8800: Handle all 4 RGMII modes identically

    [ Upstream commit 4813497 ]
    
    Before commit bf8f695 ("Add blurb about RGMII") it was unclear
    whose responsibility it was to insert the required clock skew, and
    in hindsight, some PHY drivers got it wrong. The solution forward
    is to introduce a new property, explicitly requiring skew from the
    node to which it is attached. In the interim, this driver will handle
    all 4 RGMII modes identically (no skew).
    
    Fixes: 52dfc83 ("net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller")
    Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Marc Gonzalez authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c0c8688 View commit details
    Browse the repository at this point in the history
  52. dccp: fix a memleak that dccp_ipv6 doesn't put reqsk properly

    [ Upstream commit 0c2232b ]
    
    In dccp_v6_conn_request, after reqsk gets alloced and hashed into
    ehash table, reqsk's refcnt is set 3. one is for req->rsk_timer,
    one is for hlist, and the other one is for current using.
    
    The problem is when dccp_v6_conn_request returns and finishes using
    reqsk, it doesn't put reqsk. This will cause reqsk refcnt leaks and
    reqsk obj never gets freed.
    
    Jianlin found this issue when running dccp_memleak.c in a loop, the
    system memory would run out.
    
    dccp_memleak.c:
      int s1 = socket(PF_INET6, 6, IPPROTO_IP);
      bind(s1, &sa1, 0x20);
      listen(s1, 0x9);
      int s2 = socket(PF_INET6, 6, IPPROTO_IP);
      connect(s2, &sa1, 0x20);
      close(s1);
      close(s2);
    
    This patch is to put the reqsk before dccp_v6_conn_request returns,
    just as what tcp_conn_request does.
    
    Reported-by: Jianlin Shi <jishi@redhat.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lxin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    9ffa672 View commit details
    Browse the repository at this point in the history
  53. dccp: fix a memleak that dccp_ipv4 doesn't put reqsk properly

    [ Upstream commit b7953d3 ]
    
    The patch "dccp: fix a memleak that dccp_ipv6 doesn't put reqsk
    properly" fixed reqsk refcnt leak for dccp_ipv6. The same issue
    exists on dccp_ipv4.
    
    This patch is to fix it for dccp_ipv4.
    
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lxin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4d938b6 View commit details
    Browse the repository at this point in the history
  54. dccp: fix a memleak for dccp_feat_init err process

    [ Upstream commit e90ce2f ]
    
    In dccp_feat_init, when ccid_get_builtin_ccids failsto alloc
    memory for rx.val, it should free tx.val before returning an
    error.
    
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lxin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bb21d2e View commit details
    Browse the repository at this point in the history
  55. sctp: don't dereference ptr before leaving _sctp_walk_{params, errors}()

    [ Upstream commit b1f5bfc ]
    
    If the length field of the iterator (|pos.p| or |err|) is past the end
    of the chunk, we shouldn't access it.
    
    This bug has been detected by KMSAN. For the following pair of system
    calls:
    
      socket(PF_INET6, SOCK_STREAM, 0x84 /* IPPROTO_??? */) = 3
      sendto(3, "A", 1, MSG_OOB, {sa_family=AF_INET6, sin6_port=htons(0),
             inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0,
             sin6_scope_id=0}, 28) = 1
    
    the tool has reported a use of uninitialized memory:
    
      ==================================================================
      BUG: KMSAN: use of uninitialized memory in sctp_rcv+0x17b8/0x43b0
      CPU: 1 PID: 2940 Comm: probe Not tainted 4.11.0-rc5+ #2926
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs
      01/01/2011
      Call Trace:
       <IRQ>
       __dump_stack lib/dump_stack.c:16
       dump_stack+0x172/0x1c0 lib/dump_stack.c:52
       kmsan_report+0x12a/0x180 mm/kmsan/kmsan.c:927
       __msan_warning_32+0x61/0xb0 mm/kmsan/kmsan_instr.c:469
       __sctp_rcv_init_lookup net/sctp/input.c:1074
       __sctp_rcv_lookup_harder net/sctp/input.c:1233
       __sctp_rcv_lookup net/sctp/input.c:1255
       sctp_rcv+0x17b8/0x43b0 net/sctp/input.c:170
       sctp6_rcv+0x32/0x70 net/sctp/ipv6.c:984
       ip6_input_finish+0x82f/0x1ee0 net/ipv6/ip6_input.c:279
       NF_HOOK ./include/linux/netfilter.h:257
       ip6_input+0x239/0x290 net/ipv6/ip6_input.c:322
       dst_input ./include/net/dst.h:492
       ip6_rcv_finish net/ipv6/ip6_input.c:69
       NF_HOOK ./include/linux/netfilter.h:257
       ipv6_rcv+0x1dbd/0x22e0 net/ipv6/ip6_input.c:203
       __netif_receive_skb_core+0x2f6f/0x3a20 net/core/dev.c:4208
       __netif_receive_skb net/core/dev.c:4246
       process_backlog+0x667/0xba0 net/core/dev.c:4866
       napi_poll net/core/dev.c:5268
       net_rx_action+0xc95/0x1590 net/core/dev.c:5333
       __do_softirq+0x485/0x942 kernel/softirq.c:284
       do_softirq_own_stack+0x1c/0x30 arch/x86/entry/entry_64.S:902
       </IRQ>
       do_softirq kernel/softirq.c:328
       __local_bh_enable_ip+0x25b/0x290 kernel/softirq.c:181
       local_bh_enable+0x37/0x40 ./include/linux/bottom_half.h:31
       rcu_read_unlock_bh ./include/linux/rcupdate.h:931
       ip6_finish_output2+0x19b2/0x1cf0 net/ipv6/ip6_output.c:124
       ip6_finish_output+0x764/0x970 net/ipv6/ip6_output.c:149
       NF_HOOK_COND ./include/linux/netfilter.h:246
       ip6_output+0x456/0x520 net/ipv6/ip6_output.c:163
       dst_output ./include/net/dst.h:486
       NF_HOOK ./include/linux/netfilter.h:257
       ip6_xmit+0x1841/0x1c00 net/ipv6/ip6_output.c:261
       sctp_v6_xmit+0x3b7/0x470 net/sctp/ipv6.c:225
       sctp_packet_transmit+0x38cb/0x3a20 net/sctp/output.c:632
       sctp_outq_flush+0xeb3/0x46e0 net/sctp/outqueue.c:885
       sctp_outq_uncork+0xb2/0xd0 net/sctp/outqueue.c:750
       sctp_side_effects net/sctp/sm_sideeffect.c:1773
       sctp_do_sm+0x6962/0x6ec0 net/sctp/sm_sideeffect.c:1147
       sctp_primitive_ASSOCIATE+0x12c/0x160 net/sctp/primitive.c:88
       sctp_sendmsg+0x43e5/0x4f90 net/sctp/socket.c:1954
       inet_sendmsg+0x498/0x670 net/ipv4/af_inet.c:762
       sock_sendmsg_nosec net/socket.c:633
       sock_sendmsg net/socket.c:643
       SYSC_sendto+0x608/0x710 net/socket.c:1696
       SyS_sendto+0x8a/0xb0 net/socket.c:1664
       do_syscall_64+0xe6/0x130 arch/x86/entry/common.c:285
       entry_SYSCALL64_slow_path+0x25/0x25 arch/x86/entry/entry_64.S:246
      RIP: 0033:0x401133
      RSP: 002b:00007fff6d99cd38 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
      RAX: ffffffffffffffda RBX: 00000000004002b0 RCX: 0000000000401133
      RDX: 0000000000000001 RSI: 0000000000494088 RDI: 0000000000000003
      RBP: 00007fff6d99cd90 R08: 00007fff6d99cd50 R09: 000000000000001c
      R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000
      R13: 00000000004063d0 R14: 0000000000406460 R15: 0000000000000000
      origin:
       save_stack_trace+0x37/0x40 arch/x86/kernel/stacktrace.c:59
       kmsan_save_stack_with_flags mm/kmsan/kmsan.c:302
       kmsan_internal_poison_shadow+0xb1/0x1a0 mm/kmsan/kmsan.c:198
       kmsan_poison_shadow+0x6d/0xc0 mm/kmsan/kmsan.c:211
       slab_alloc_node mm/slub.c:2743
       __kmalloc_node_track_caller+0x200/0x360 mm/slub.c:4351
       __kmalloc_reserve net/core/skbuff.c:138
       __alloc_skb+0x26b/0x840 net/core/skbuff.c:231
       alloc_skb ./include/linux/skbuff.h:933
       sctp_packet_transmit+0x31e/0x3a20 net/sctp/output.c:570
       sctp_outq_flush+0xeb3/0x46e0 net/sctp/outqueue.c:885
       sctp_outq_uncork+0xb2/0xd0 net/sctp/outqueue.c:750
       sctp_side_effects net/sctp/sm_sideeffect.c:1773
       sctp_do_sm+0x6962/0x6ec0 net/sctp/sm_sideeffect.c:1147
       sctp_primitive_ASSOCIATE+0x12c/0x160 net/sctp/primitive.c:88
       sctp_sendmsg+0x43e5/0x4f90 net/sctp/socket.c:1954
       inet_sendmsg+0x498/0x670 net/ipv4/af_inet.c:762
       sock_sendmsg_nosec net/socket.c:633
       sock_sendmsg net/socket.c:643
       SYSC_sendto+0x608/0x710 net/socket.c:1696
       SyS_sendto+0x8a/0xb0 net/socket.c:1664
       do_syscall_64+0xe6/0x130 arch/x86/entry/common.c:285
       return_from_SYSCALL_64+0x0/0x6a arch/x86/entry/entry_64.S:246
      ==================================================================
    
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ramosian-glider authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    cc6f148 View commit details
    Browse the repository at this point in the history
  56. sctp: fix the check for _sctp_walk_params and _sctp_walk_errors

    [ Upstream commit 6b84202 ]
    
    Commit b1f5bfc ("sctp: don't dereference ptr before leaving
    _sctp_walk_{params, errors}()") tried to fix the issue that it
    may overstep the chunk end for _sctp_walk_{params, errors} with
    'chunk_end > offset(length) + sizeof(length)'.
    
    But it introduced a side effect: When processing INIT, it verifies
    the chunks with 'param.v == chunk_end' after iterating all params
    by sctp_walk_params(). With the check 'chunk_end > offset(length)
    + sizeof(length)', it would return when the last param is not yet
    accessed. Because the last param usually is fwdtsn supported param
    whose size is 4 and 'chunk_end == offset(length) + sizeof(length)'
    
    This is a badly issue even causing sctp couldn't process 4-shakes.
    Client would always get abort when connecting to server, due to
    the failure of INIT chunk verification on server.
    
    The patch is to use 'chunk_end <= offset(length) + sizeof(length)'
    instead of 'chunk_end < offset(length) + sizeof(length)' for both
    _sctp_walk_params and _sctp_walk_errors.
    
    Fixes: b1f5bfc ("sctp: don't dereference ptr before leaving _sctp_walk_{params, errors}()")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lxin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    df32d08 View commit details
    Browse the repository at this point in the history
  57. net/mlx5: Consider tx_enabled in all modes on remap

    [ Upstream commit dc798b4 ]
    
    The tx_enabled lag event field is used to determine whether a slave is
    active.
    Current logic uses this value only if the mode is active-backup.
    
    However, LACP mode, although considered a load balancing mode, can mark
    a slave as inactive in certain situations (e.g., LACP timeout).
    
    This fix takes the tx_enabled value into account when remapping, with
    no respect to the LAG mode (this should not affect the behavior in XOR
    mode, since in this mode both slaves are marked as active).
    
    Fixes: 7907f23 (net/mlx5: Implement RoCE LAG feature)
    Signed-off-by: Aviv Heller <avivh@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Aviv Heller authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    fca84d6 View commit details
    Browse the repository at this point in the history
  58. net/mlx5: Fix command bad flow on command entry allocation failure

    [ Upstream commit 219c81f ]
    
    When driver fail to allocate an entry to send command to FW, it must
    notify the calling function and release the memory allocated for
    this command.
    
    Fixes: e126ba9 ('mlx5: Add driver for Mellanox Connect-IB adapters')
    Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
    Cc: kernel-team@fb.com
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Moshe Shemesh authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    d19d0ac View commit details
    Browse the repository at this point in the history
  59. net/mlx5e: Fix outer_header_zero() check size

    [ Upstream commit 0242f4a ]
    
    outer_header_zero() routine checks if the outer_headers match of a
    flow-table entry are all zero.
    
    This function uses the size of whole fte_match_param, instead of just
    the outer_headers member, causing failure to detect all-zeros if
    any other members of the fte_match_param are non-zero.
    
    Use the correct size for zero check.
    
    Fixes: 6dc6071 ("net/mlx5e: Add ethtool flow steering support")
    Signed-off-by: Ilan Tayari <ilant@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ilantayari authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    d704979 View commit details
    Browse the repository at this point in the history
  60. net/mlx5e: Fix wrong delay calculation for overflow check scheduling

    [ Upstream commit d439c84 ]
    
    The overflow_period is calculated in seconds. In order to use it
    for delayed work scheduling translation to jiffies is needed.
    
    Fixes: ef9814d ('net/mlx5e: Add HW timestamping (TS) support')
    Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Eugenia Emantayev authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    862ade9 View commit details
    Browse the repository at this point in the history
  61. net/mlx5e: Schedule overflow check work to mlx5e workqueue

    [ Upstream commit f08c39e ]
    
    This is done in order to ensure that work will not run after the cleanup.
    
    Fixes: ef9814d ('net/mlx5e: Add HW timestamping (TS) support')
    Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Eugenia Emantayev authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    33e25b2 View commit details
    Browse the repository at this point in the history
  62. net: phy: Correctly process PHY_HALTED in phy_stop_machine()

    [ Upstream commit 7ad813f ]
    
    Marc reported that he was not getting the PHY library adjust_link()
    callback function to run when calling phy_stop() + phy_disconnect()
    which does not indeed happen because we set the state machine to
    PHY_HALTED but we don't get to run it to process this state past that
    point.
    
    Fix this with a synchronous call to phy_state_machine() in order to have
    the state machine actually act on PHY_HALTED, set the PHY device's link
    down, turn the network device's carrier off and finally call the
    adjust_link() function.
    
    Reported-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
    Fixes: a390d1f ("phylib: convert state_queue work to delayed_work")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ffainelli authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    38e71ea View commit details
    Browse the repository at this point in the history
  63. xen-netback: correctly schedule rate-limited queues

    [ Upstream commit dfa523a ]
    
    Add a flag to indicate if a queue is rate-limited. Test the flag in
    NAPI poll handler and avoid rescheduling the queue if true, otherwise
    we risk locking up the host. The rescheduling will be done in the
    timer callback function.
    
    Reported-by: Jean-Louis Dupond <jean-louis@dupond.be>
    Signed-off-by: Wei Liu <wei.liu2@citrix.com>
    Tested-by: Jean-Louis Dupond <jean-louis@dupond.be>
    Reviewed-by: Paul Durrant <paul.durrant@citrix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Wei Liu authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    816843a View commit details
    Browse the repository at this point in the history
  64. sparc64: Measure receiver forward progress to avoid send mondo timeout

    [ Upstream commit 9d53cae ]
    
    A large sun4v SPARC system may have moments of intensive xcall activities,
    usually caused by unmapping many pages on many CPUs concurrently. This can
    flood receivers with CPU mondo interrupts for an extended period, causing
    some unlucky senders to hit send-mondo timeout. This problem gets worse
    as cpu count increases because sometimes mappings must be invalidated on
    all CPUs, and sometimes all CPUs may gang up on a single CPU.
    
    But a busy system is not a broken system. In the above scenario, as long
    as the receiver is making forward progress processing mondo interrupts,
    the sender should continue to retry.
    
    This patch implements the receiver's forward progress meter by introducing
    a per cpu counter 'cpu_mondo_counter[cpu]' where 'cpu' is in the range
    of 0..NR_CPUS. The receiver increments its counter as soon as it receives
    a mondo and the sender tracks the receiver's counter. If the receiver has
    stopped making forward progress when the retry limit is reached, the sender
    declares send-mondo-timeout and panic; otherwise, the receiver is allowed
    to keep making forward progress.
    
    In addition, it's been observed that PCIe hotplug events generate Correctable
    Errors that are handled by hypervisor and then OS. Hypervisor 'borrows'
    a guest cpu strand briefly to provide the service. If the cpu strand is
    simultaneously the only cpu targeted by a mondo, it may not be available
    for the mondo in 20msec, causing SUN4V mondo timeout. It appears that 1 second
    is the agreed wait time between hypervisor and guest OS, this patch makes
    the adjustment.
    
    Orabug: 25476541
    Orabug: 26417466
    
    Signed-off-by: Jane Chu <jane.chu@oracle.com>
    Reviewed-by: Steve Sistare <steven.sistare@oracle.com>
    Reviewed-by: Anthony Yznaga <anthony.yznaga@oracle.com>
    Reviewed-by: Rob Gardner <rob.gardner@oracle.com>
    Reviewed-by: Thomas Tai <thomas.tai@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jchu314atgithub authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bfafa56 View commit details
    Browse the repository at this point in the history
  65. sparc64: Fix exception handling in UltraSPARC-III memcpy.

    [ Upstream commit 0ede1c4 ]
    
    Mikael Pettersson reported that some test programs in the strace-4.18
    testsuite cause an OOPS.
    
    After some debugging it turns out that garbage values are returned
    when an exception occurs, causing the fixup memset() to be run with
    bogus arguments.
    
    The problem is that two of the exception handler stubs write the
    successfully copied length into the wrong register.
    
    Fixes: ee841d0 ("sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.")
    Reported-by: Mikael Pettersson <mikpelinux@gmail.com>
    Tested-by: Mikael Pettersson <mikpelinux@gmail.com>
    Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    b9d68cd View commit details
    Browse the repository at this point in the history
  66. wext: handle NULL extra data in iwe_stream_add_point better

    commit 93be2b7 upstream.
    
    gcc-7 complains that wl3501_cs passes NULL into a function that
    then uses the argument as the input for memcpy:
    
    drivers/net/wireless/wl3501_cs.c: In function 'wl3501_get_scan':
    include/net/iw_handler.h:559:3: error: argument 2 null where non-null expected [-Werror=nonnull]
       memcpy(stream + point_len, extra, iwe->u.data.length);
    
    This works fine here because iwe->u.data.length is guaranteed to be 0
    and the memcpy doesn't actually have an effect.
    
    Making the length check explicit avoids the warning and should have
    no other effect here.
    
    Also check the pointer itself, since otherwise we get warnings
    elsewhere in the code.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    arndb authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    b871452 View commit details
    Browse the repository at this point in the history
  67. sh_eth: fix EESIPR values for SH77{34|63}

    [ Upstream commit 978d363 ]
    
    As the SH77{34|63} manuals are freely available,  I've checked the EESIPR
    values written against the manuals, and they appeared to set the reserved
    bits 11-15 (which should be 0 on write). Fix those EESIPR values.
    
    Fixes: 380af9e ("net: sh_eth: CPU dependency code collect to "struct sh_eth_cpu_data"")
    Fixes: f5d1276 ("sh_eth: get SH77{34|63} support out of #ifdef")
    Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Sergei Shtylyov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    2d4fef7 View commit details
    Browse the repository at this point in the history
  68. sh_eth: R8A7740 supports packet shecksumming

    [ Upstream commit 0f1f9cb ]
    
    The R8A7740 GEther controller supports the packet checksum offloading
    but the 'hw_crc' (bad name, I'll fix it) flag isn't set in the R8A7740
    data,  thus CSMR isn't cleared...
    
    Fixes: 73a0d90 ("net: sh_eth: add support R8A7740")
    Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Sergei Shtylyov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bfe384e View commit details
    Browse the repository at this point in the history
  69. net: phy: dp83867: fix irq generation

    [ Upstream commit 5ca7d1c ]
    
    For proper IRQ generation by DP83867 phy the INT/PWDN pin has to be
    programmed as an interrupt output instead of a Powerdown input in
    Configuration Register 3 (CFG3), Address 0x001E, bit 7 INT_OE = 1. The
    current driver doesn't do this and as result IRQs will not be generated by
    DP83867 phy even if they are properly configured in DT.
    
    Hence, fix IRQ generation by properly configuring CFG3.INT_OE bit and
    ensure that Link Status Change (LINK_STATUS_CHNG_INT) and Auto-Negotiation
    Complete (AUTONEG_COMP_INT) interrupt are enabled. After this the DP83867
    driver will work properly in interrupt enabled mode.
    
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    grygoriyS authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    5f7eeee View commit details
    Browse the repository at this point in the history
  70. tg3: Fix race condition in tg3_get_stats64().

    [ Upstream commit f5992b7 ]
    
    The driver's ndo_get_stats64() method is not always called under RTNL.
    So it can race with driver close or ethtool reconfigurations.  Fix the
    race condition by taking tp->lock spinlock in tg3_free_consistent()
    when freeing the tp->hw_stats memory block.  tg3_get_stats64() is
    already taking tp->lock.
    
    Reported-by: Wang Yufen <wangyufen@huawei.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Michael Chan authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    1042bd4 View commit details
    Browse the repository at this point in the history
  71. x86/boot: Add missing declaration of string functions

    [ Upstream commit fac69d0 ]
    
    Add the missing declarations of basic string functions to string.h to allow
    a clean build.
    
    Fixes: 5be8656 ("String-handling functions for the new x86 setup code.")
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Link: http://lkml.kernel.org/r/1483781911-21399-1-git-send-email-hofrat@osadl.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Nicholas Mc Guire authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f897e9a View commit details
    Browse the repository at this point in the history
  72. spi: spi-axi: Free resources on error path

    [ Upstream commit 9620ca9 ]
    
    We should go to 'err_put_master' here instead of returning directly.
    Otherwise a call to 'spi_master_put' is missing.
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Acked-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tititiou36 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c77512d View commit details
    Browse the repository at this point in the history
  73. ASoC: rt5645: set sel_i2s_pre_div1 to 2

    [ Upstream commit 02c5c03 ]
    
    The i2s clock pre-divider 1 is used for both i2s1 and sysclk.
    The i2s1 is usually used for the main i2s and the pre-divider
    will be set in hw_params function.
    
    However, if i2s2 is used, the pre-divider is not set in the hw_params
    function and the default value of i2s clock pre-divider 1 is too high
    for sysclk and DMIC usage. Fix by overriding default divider value to 2.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=95681
    Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Bard Liao <bardliao@realtek.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Bard Liao authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    2e2a390 View commit details
    Browse the repository at this point in the history
  74. netfilter: use fwmark_reflect in nf_send_reset

    [ Upstream commit cc31d43 ]
    
    Otherwise, RST packets generated by ipt_REJECT always have mark 0 when
    the routing is checked later in the same code path.
    
    Fixes: e110861 ("net: add a sysctl to reflect the fwmark on replies")
    Cc: Lorenzo Colitti <lorenzo@google.com>
    Signed-off-by: Pau Espin Pedrol <pau.espin@tessares.net>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    pespin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    9acfb31 View commit details
    Browse the repository at this point in the history
  75. phy state machine: failsafe leave invalid RUNNING state

    [ Upstream commit 811a919 ]
    
    While in RUNNING state, phy_state_machine() checks for link changes by
    comparing phydev->link before and after calling phy_read_status().
    This works as long as it is guaranteed that phydev->link is never
    changed outside the phy_state_machine().
    
    If in some setups this happens, it causes the state machine to miss
    a link loss and remain RUNNING despite phydev->link being 0.
    
    This has been observed running a dsa setup with a process continuously
    polling the link states over ethtool each second (SNMPD RFC-1213
    agent). Disconnecting the link on a phy followed by a ETHTOOL_GSET
    causes dsa_slave_get_settings() / dsa_slave_get_link_ksettings() to
    call phy_read_status() and with that modify the link status - and
    with that bricking the phy state machine.
    
    This patch adds a fail-safe check while in RUNNING, which causes to
    move to CHANGELINK when the link is gone and we are still RUNNING.
    
    Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    zefir-kurtisi authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0bbbbae View commit details
    Browse the repository at this point in the history
  76. ipv4: make tcp_notsent_lowat sysctl knob behave as true unsigned int

    [ Upstream commit b007f09 ]
    
    > cat /proc/sys/net/ipv4/tcp_notsent_lowat
    -1
    > echo 4294967295 > /proc/sys/net/ipv4/tcp_notsent_lowat
    -bash: echo: write error: Invalid argument
    > echo -2147483648 > /proc/sys/net/ipv4/tcp_notsent_lowat
    > cat /proc/sys/net/ipv4/tcp_notsent_lowat
    -2147483648
    
    but in documentation we have "tcp_notsent_lowat - UNSIGNED INTEGER"
    
    v2: simplify to just proc_douintvec
    Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Snorch authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    ee96797 View commit details
    Browse the repository at this point in the history
  77. clk/samsung: exynos542x: mark some clocks as critical

    [ Upstream commit 318fa46 ]
    
    Some parent clocks of the Exynos542x clock blocks, which have separate
    power domains (like DISP, MFC, MSC, GSC, FSYS and G2D) must be always
    enabled to access any register related to power management unit or devices
    connected to it. For the time being, until a proper solution based on
    runtime PM is applied, mark those clocks as critical (instead of ignore
    unused or even no flags) to prevent disabling them.
    
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
    Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Tested-by: Javier Martinez Canillas <javier@osg.samsung.com> [Exynos5800 Peach Pi Chromebook]
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mszyprow authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    99eb27d View commit details
    Browse the repository at this point in the history
  78. scsi: qla2xxx: Get mutex lock before checking optrom_state

    [ Upstream commit c7702b8 ]
    
    There is a race condition with qla2xxx optrom functions where one thread
    might modify optrom buffer, optrom_state while other thread is still
    reading from it.
    
    In couple of crashes, it was found that we had successfully passed the
    following 'if' check where we confirm optrom_state to be
    QLA_SREADING. But by the time we acquired mutex lock to proceed with
    memory_read_from_buffer function, some other thread/process had already
    modified that option rom buffer and optrom_state from QLA_SREADING to
    QLA_SWAITING. Then we got ha->optrom_buffer 0x0 and crashed the system:
    
            if (ha->optrom_state != QLA_SREADING)
                    return 0;
    
            mutex_lock(&ha->optrom_mutex);
            rval = memory_read_from_buffer(buf, count, &off, ha->optrom_buffer,
                ha->optrom_region_size);
            mutex_unlock(&ha->optrom_mutex);
    
    With current optrom function we get following crash due to a race
    condition:
    
    [ 1479.466679] BUG: unable to handle kernel NULL pointer dereference at           (null)
    [ 1479.466707] IP: [<ffffffff81326756>] memcpy+0x6/0x110
    [...]
    [ 1479.473673] Call Trace:
    [ 1479.474296]  [<ffffffff81225cbc>] ? memory_read_from_buffer+0x3c/0x60
    [ 1479.474941]  [<ffffffffa01574dc>] qla2x00_sysfs_read_optrom+0x9c/0xc0 [qla2xxx]
    [ 1479.475571]  [<ffffffff8127e76b>] read+0xdb/0x1f0
    [ 1479.476206]  [<ffffffff811fdf9e>] vfs_read+0x9e/0x170
    [ 1479.476839]  [<ffffffff811feb6f>] SyS_read+0x7f/0xe0
    [ 1479.477466]  [<ffffffff816964c9>] system_call_fastpath+0x16/0x1b
    
    Below patch modifies qla2x00_sysfs_read_optrom,
    qla2x00_sysfs_write_optrom functions to get the mutex_lock before
    checking ha->optrom_state to avoid similar crashes.
    
    The patch was applied and tested and same crashes were no longer
    observed again.
    
    Tested-by: Milan P. Gandhi <mgandhi@redhat.com>
    Signed-off-by: Milan P. Gandhi <mgandhi@redhat.com>
    Reviewed-by: Laurence Oberman <loberman@redhat.com>
    Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mpg-rh authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    2a60965 View commit details
    Browse the repository at this point in the history
  79. drm/virtio: fix framebuffer sparse warning

    [ Upstream commit 71d3f6e ]
    
    virtio uses normal ram as backing storage for the framebuffer, so we
    should assign the address to new screen_buffer (added by commit
    17a7b0b) instead of screen_base.
    
    Reported-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    kraxel authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    61cf0af View commit details
    Browse the repository at this point in the history
  80. ARM: dts: sun8i: Support DTB build for NanoPi M1

    [ Upstream commit 661ccdc ]
    
    The commit 10efbf5 ("ARM: dts: sun8i: Add dts file for NanoPi M1 SBC")
    introduced NanoPi M1 board but it's missing in Allwinner H3 DTB build.
    
    Signed-off-by: Milo Kim <woogyom.kim@gmail.com>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    woogyom authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    1e9e717 View commit details
    Browse the repository at this point in the history
  81. ARM: dts: sunxi: Change node name for pwrseq pin on Olinuxino-lime2-emmc

    [ Upstream commit 3116d37 ]
    
    The node name for the power seq pin is mmc2@0 like the mmc2_pins_a one.
    This makes the original node (mmc2_pins_a) scrapped out of the dtb and
    result in a unusable eMMC if U-Boot didn't configured the pins to the
    correct functions.
    
    Signed-off-by: Emmanuel Vadot <manu@bidouilliste.com>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    evadot authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    984922f View commit details
    Browse the repository at this point in the history
  82. iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort

    [ Upstream commit 3bcf96e ]
    
    Function rx_data(), which handles ingress CPL_RX_DATA messages, was
    always sending an RX_DATA_ACK with the goal of updating the credits.
    However, if the RDMA connection is moved out of FPDU mode abruptly,
    then it is possible for iw_cxgb4 to process queued RX_DATA CPLs after HW
    has aborted the connection.  These CPLs should not trigger RX_DATA_ACKS.
    If they do, HW can see a READ after DELETE of the DB_LE hash entry for
    the tid and post a LE_DB HashTblMemCrcError.
    
    Signed-off-by: Steve Wise <swise@opengridcomputing.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Steve Wise authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    44d5283 View commit details
    Browse the repository at this point in the history
  83. nbd: blk_mq_init_queue returns an error code on failure, not NULL

    [ Upstream commit 25b4acf ]
    
    Additionally, don't assign directly to disk->queue, otherwise
    blk_put_queue (called via put_disk) will choke (panic) on the errno
    stored there.
    
    Bug found by code inspection after Omar found a similar issue in
    virtio_blk.  Compile-tested only.
    
    Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
    Reviewed-by: Omar Sandoval <osandov@fb.com>
    Reviewed-by: Josef Bacik <jbacik@fb.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    JeffMoyer authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    952d07a View commit details
    Browse the repository at this point in the history
  84. virtio_blk: fix panic in initialization error path

    [ Upstream commit 6bf6b0a ]
    
    If blk_mq_init_queue() returns an error, it gets assigned to
    vblk->disk->queue. Then, when we call put_disk(), we end up calling
    blk_put_queue() with the ERR_PTR, causing a bad dereference. Fix it by
    only assigning to vblk->disk->queue on success.
    
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    osandov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    e6d53f5 View commit details
    Browse the repository at this point in the history
  85. ARM: 8632/1: ftrace: fix syscall name matching

    [ Upstream commit 270c8cf ]
    
    ARM has a few system calls (most notably mmap) for which the names of
    the functions which are referenced in the syscall table do not match the
    names of the syscall tracepoints.  As a consequence of this, these
    tracepoints are not made available.  Implement
    arch_syscall_match_sym_name to fix this and allow tracing even these
    system calls.
    
    Signed-off-by: Rabin Vincent <rabinv@axis.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    vwax authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bebbe84 View commit details
    Browse the repository at this point in the history
  86. mm, slab: make sure that KMALLOC_MAX_SIZE will fit into MAX_ORDER

    [ Upstream commit bb1107f ]
    
    Andrey Konovalov has reported the following warning triggered by the
    syzkaller fuzzer.
    
      WARNING: CPU: 1 PID: 9935 at mm/page_alloc.c:3511 __alloc_pages_nodemask+0x159c/0x1e20
      Kernel panic - not syncing: panic_on_warn set ...
      CPU: 1 PID: 9935 Comm: syz-executor0 Not tainted 4.9.0-rc7+ torvalds#34
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
      Call Trace:
        __alloc_pages_slowpath mm/page_alloc.c:3511
        __alloc_pages_nodemask+0x159c/0x1e20 mm/page_alloc.c:3781
        alloc_pages_current+0x1c7/0x6b0 mm/mempolicy.c:2072
        alloc_pages include/linux/gfp.h:469
        kmalloc_order+0x1f/0x70 mm/slab_common.c:1015
        kmalloc_order_trace+0x1f/0x160 mm/slab_common.c:1026
        kmalloc_large include/linux/slab.h:422
        __kmalloc+0x210/0x2d0 mm/slub.c:3723
        kmalloc include/linux/slab.h:495
        ep_write_iter+0x167/0xb50 drivers/usb/gadget/legacy/inode.c:664
        new_sync_write fs/read_write.c:499
        __vfs_write+0x483/0x760 fs/read_write.c:512
        vfs_write+0x170/0x4e0 fs/read_write.c:560
        SYSC_write fs/read_write.c:607
        SyS_write+0xfb/0x230 fs/read_write.c:599
        entry_SYSCALL_64_fastpath+0x1f/0xc2
    
    The issue is caused by a lack of size check for the request size in
    ep_write_iter which should be fixed.  It, however, points to another
    problem, that SLUB defines KMALLOC_MAX_SIZE too large because the its
    KMALLOC_SHIFT_MAX is (MAX_ORDER + PAGE_SHIFT) which means that the
    resulting page allocator request might be MAX_ORDER which is too large
    (see __alloc_pages_slowpath).
    
    The same applies to the SLOB allocator which allows even larger sizes.
    Make sure that they are capped properly and never request more than
    MAX_ORDER order.
    
    Link: http://lkml.kernel.org/r/20161220130659.16461-2-mhocko@kernel.org
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Acked-by: Christoph Lameter <cl@linux.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Michal Hocko authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c736011 View commit details
    Browse the repository at this point in the history
  87. lib/Kconfig.debug: fix frv build failure

    [ Upstream commit da0510c ]
    
    The build of frv allmodconfig was failing with the errors like:
    
      /tmp/cc0JSPc3.s: Assembler messages:
      /tmp/cc0JSPc3.s:1839: Error: symbol `.LSLT0' is already defined
      /tmp/cc0JSPc3.s:1842: Error: symbol `.LASLTP0' is already defined
      /tmp/cc0JSPc3.s:1969: Error: symbol `.LELTP0' is already defined
      /tmp/cc0JSPc3.s:1970: Error: symbol `.LELT0' is already defined
    
    Commit 866ced9 ("kbuild: Support split debug info v4") introduced
    splitting the debug info and keeping that in a separate file.  Somehow,
    the frv-linux gcc did not like that and I am guessing that instead of
    splitting it started copying.  The first report about this is at:
    
      https://lists.01.org/pipermail/kbuild-all/2015-July/010527.html.
    
    I will try and see if this can work with frv and if still fails I will
    open a bug report with gcc.  But meanwhile this is the easiest option to
    solve build failure of frv.
    
    Fixes: 866ced9 ("kbuild: Support split debug info v4")
    Link: http://lkml.kernel.org/r/1482062348-5352-1-git-send-email-sudipm.mukherjee@gmail.com
    Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: David Howells <dhowells@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    sudipm-mukherjee authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    d12824c View commit details
    Browse the repository at this point in the history
  88. signal: protect SIGNAL_UNKILLABLE from unintentional clearing.

    [ Upstream commit 2d39b3c ]
    
    Since commit 00cd5c3 ("ptrace: permit ptracing of /sbin/init") we
    can now trace init processes.  init is initially protected with
    SIGNAL_UNKILLABLE which will prevent fatal signals such as SIGSTOP, but
    there are a number of paths during tracing where SIGNAL_UNKILLABLE can
    be implicitly cleared.
    
    This can result in init becoming stoppable/killable after tracing.  For
    example, running:
    
      while true; do kill -STOP 1; done &
      strace -p 1
    
    and then stopping strace and the kill loop will result in init being
    left in state TASK_STOPPED.  Sending SIGCONT to init will resume it, but
    init will now respond to future SIGSTOP signals rather than ignoring
    them.
    
    Make sure that when setting SIGNAL_STOP_CONTINUED/SIGNAL_STOP_STOPPED
    that we don't clear SIGNAL_UNKILLABLE.
    
    Link: http://lkml.kernel.org/r/20170104122017.25047-1-jamie.iles@oracle.com
    Signed-off-by: Jamie Iles <jamie.iles@oracle.com>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jamieiles authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    916a05b View commit details
    Browse the repository at this point in the history
  89. mm: don't dereference struct page fields of invalid pages

    [ Upstream commit f073bdc ]
    
    The VM_BUG_ON() check in move_freepages() checks whether the node id of
    a page matches the node id of its zone.  However, it does this before
    having checked whether the struct page pointer refers to a valid struct
    page to begin with.  This is guaranteed in most cases, but may not be
    the case if CONFIG_HOLES_IN_ZONE=y.
    
    So reorder the VM_BUG_ON() with the pfn_valid_within() check.
    
    Link: http://lkml.kernel.org/r/1481706707-6211-2-git-send-email-ard.biesheuvel@linaro.org
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Hanjun Guo <hanjun.guo@linaro.org>
    Cc: Yisheng Xie <xieyisheng1@huawei.com>
    Cc: Robert Richter <rrichter@cavium.com>
    Cc: James Morse <james.morse@arm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Ard Biesheuvel authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    22cccef View commit details
    Browse the repository at this point in the history
  90. net/mlx5: E-Switch, Re-enable RoCE on mode change only after FDB destroy

    [ Upstream commit 5bae8c0 ]
    
    We must re-enable RoCE on the e-switch management port (PF) only after destroying
    the FDB in its switchdev/offloaded mode. Otherwise, when encapsulation is supported,
    this re-enablement will fail.
    
    Also, it's more natural and symmetric to disable RoCE on the PF before we create
    the FDB under switchdev mode, so do that as well and revert if getting into error
    during the mode change later.
    
    Fixes: 9da34cd ('net/mlx5: Disable RoCE on the e-switch management [..]')
    Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
    Reviewed-by: Hadar Hen Zion <hadarh@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ogerlitz authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    a69f0d5 View commit details
    Browse the repository at this point in the history
  91. ipv4: Should use consistent conditional judgement for ip fragment in …

    …__ip_append_data and ip_finish_output
    
    [ Upstream commit 0a28cfd ]
    
    There is an inconsistent conditional judgement in __ip_append_data and
    ip_finish_output functions, the variable length in __ip_append_data just
    include the length of application's payload and udp header, don't include
    the length of ip header, but in ip_finish_output use
    (skb->len > ip_skb_dst_mtu(skb)) as judgement, and skb->len include the
    length of ip header.
    
    That causes some particular application's udp payload whose length is
    between (MTU - IP Header) and MTU were fragmented by ip_fragment even
    though the rst->dev support UFO feature.
    
    Add the length of ip header to length in __ip_append_data to keep
    consistent conditional judgement as ip_finish_output for ip fragment.
    
    Signed-off-by: Zheng Li <james.z.li@ericsson.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    zheng li authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f102bb7 View commit details
    Browse the repository at this point in the history
  92. net: account for current skb length when deciding about UFO

    [ Upstream commit a5cb659 ]
    
    Our customer encountered stuck NFS writes for blocks starting at specific
    offsets w.r.t. page boundary caused by networking stack sending packets via
    UFO enabled device with wrong checksum. The problem can be reproduced by
    composing a long UDP datagram from multiple parts using MSG_MORE flag:
    
      sendto(sd, buff, 1000, MSG_MORE, ...);
      sendto(sd, buff, 1000, MSG_MORE, ...);
      sendto(sd, buff, 3000, 0, ...);
    
    Assume this packet is to be routed via a device with MTU 1500 and
    NETIF_F_UFO enabled. When second sendto() gets into __ip_append_data(),
    this condition is tested (among others) to decide whether to call
    ip_ufo_append_data():
    
      ((length + fragheaderlen) > mtu) || (skb && skb_is_gso(skb))
    
    At the moment, we already have skb with 1028 bytes of data which is not
    marked for GSO so that the test is false (fragheaderlen is usually 20).
    Thus we append second 1000 bytes to this skb without invoking UFO. Third
    sendto(), however, has sufficient length to trigger the UFO path so that we
    end up with non-UFO skb followed by a UFO one. Later on, udp_send_skb()
    uses udp_csum() to calculate the checksum but that assumes all fragments
    have correct checksum in skb->csum which is not true for UFO fragments.
    
    When checking against MTU, we need to add skb->len to length of new segment
    if we already have a partially filled skb and fragheaderlen only if there
    isn't one.
    
    In the IPv6 case, skb can only be null if this is the first segment so that
    we have to use headersize (length of the first IPv6 header) rather than
    fragheaderlen (length of IPv6 header of further fragments) for skb == NULL.
    
    Fixes: e89e9cf ("[IPv4/IPv6]: UFO Scatter-gather approach")
    Fixes: e4c5e13 ("ipv6: Should use consistent conditional judgement for
    	ip6 fragment between __ip6_append_data and ip6_finish_output")
    Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
    Acked-by: Vlad Yasevich <vyasevic@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mkubecek authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    ef09c9f View commit details
    Browse the repository at this point in the history
  93. net: phy: Fix PHY unbind crash

    commit 7b9a88a upstream.
    
    The PHY library does not deal very well with bind and unbind events. The first
    thing we would see is that we were not properly canceling the PHY state machine
    workqueue, so we would be crashing while dereferencing phydev->drv since there
    is no driver attached anymore.
    
    Suggested-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ffainelli authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c3c9471 View commit details
    Browse the repository at this point in the history
  94. workqueue: implicit ordered attribute should be overridable

    commit 0a94efb upstream.
    
    5c0338c ("workqueue: restore WQ_UNBOUND/max_active==1 to be
    ordered") automatically enabled ordered attribute for unbound
    workqueues w/ max_active == 1.  Because ordered workqueues reject
    max_active and some attribute changes, this implicit ordered mode
    broke cases where the user creates an unbound workqueue w/ max_active
    == 1 and later explicitly changes the related attributes.
    
    This patch distinguishes explicit and implicit ordered setting and
    overrides from attribute changes if implict.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Fixes: 5c0338c ("workqueue: restore WQ_UNBOUND/max_active==1 to be ordered")
    Cc: Holger Hoffstätte <holger@applied-asynchrony.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    htejun authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f9636c9 View commit details
    Browse the repository at this point in the history
  95. Linux 4.9.42

    gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4c666b0 View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2017

  1. ppp: Fix false xmit recursion detect with two ppp devices

    [ Upstream commit e5dadc6 ]
    
    The global percpu variable ppp_xmit_recursion is used to detect the ppp
    xmit recursion to avoid the deadlock, which is caused by one CPU tries to
    lock the xmit lock twice. But it would report false recursion when one CPU
    wants to send the skb from two different PPP devices, like one L2TP on the
    PPPoE. It is a normal case actually.
    
    Now use one percpu member of struct ppp instead of the gloable variable to
    detect the xmit recursion of one ppp device.
    
    Fixes: 55454a5 ("ppp: avoid dealock on recursive xmit")
    Signed-off-by: Gao Feng <gfree.wind@vip.163.com>
    Signed-off-by: Liu Jianying <jianying.liu@ikuai8.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gfreewind authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    3b25bfc View commit details
    Browse the repository at this point in the history
  2. ppp: fix xmit recursion detection on ppp channels

    [ Upstream commit 0a0e1a8 ]
    
    Commit e5dadc6 ("ppp: Fix false xmit recursion detect with two ppp
    devices") dropped the xmit_recursion counter incrementation in
    ppp_channel_push() and relied on ppp_xmit_process() for this task.
    But __ppp_channel_push() can also send packets directly (using the
    .start_xmit() channel callback), in which case the xmit_recursion
    counter isn't incremented anymore. If such packets get routed back to
    the parent ppp unit, ppp_xmit_process() won't notice the recursion and
    will call ppp_channel_push() on the same channel, effectively creating
    the deadlock situation that the xmit_recursion mechanism was supposed
    to prevent.
    
    This patch re-introduces the xmit_recursion counter incrementation in
    ppp_channel_push(). Since the xmit_recursion variable is now part of
    the parent ppp unit, incrementation is skipped if the channel doesn't
    have any. This is fine because only packets routed through the parent
    unit may enter the channel recursively.
    
    Finally, we have to ensure that pch->ppp is not going to be modified
    while executing ppp_channel_push(). Instead of taking this lock only
    while calling ppp_xmit_process(), we now have to hold it for the full
    ppp_channel_push() execution. This respects the ppp locks ordering
    which requires locking ->upl before ->downl.
    
    Fixes: e5dadc6 ("ppp: Fix false xmit recursion detect with two ppp devices")
    Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Guillaume Nault authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    6ec6ec3 View commit details
    Browse the repository at this point in the history
  3. tcp: avoid setting cwnd to invalid ssthresh after cwnd reduction states

    [ Upstream commit ed25497 ]
    
    If the sender switches the congestion control during ECN-triggered
    cwnd-reduction state (CA_CWR), upon exiting recovery cwnd is set to
    the ssthresh value calculated by the previous congestion control. If
    the previous congestion control is BBR that always keep ssthresh
    to TCP_INIFINITE_SSTHRESH, cwnd ends up being infinite. The safe
    step is to avoid assigning invalid ssthresh value when recovery ends.
    
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    yuchungcheng authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    3914a7e View commit details
    Browse the repository at this point in the history
  4. net: fix keepalive code vs TCP_FASTOPEN_CONNECT

    [ Upstream commit 2dda640 ]
    
    syzkaller was able to trigger a divide by 0 in TCP stack [1]
    
    Issue here is that keepalive timer needs to be updated to not attempt
    to send a probe if the connection setup was deferred using
    TCP_FASTOPEN_CONNECT socket option added in linux-4.11
    
    [1]
     divide error: 0000 [#1] SMP
     CPU: 18 PID: 0 Comm: swapper/18 Not tainted
     task: ffff986f62f4b040 ti: ffff986f62fa2000 task.ti: ffff986f62fa2000
     RIP: 0010:[<ffffffff8409cc0d>]  [<ffffffff8409cc0d>] __tcp_select_window+0x8d/0x160
     Call Trace:
      <IRQ>
      [<ffffffff8409d951>] tcp_transmit_skb+0x11/0x20
      [<ffffffff8409da21>] tcp_xmit_probe_skb+0xc1/0xe0
      [<ffffffff840a0ee8>] tcp_write_wakeup+0x68/0x160
      [<ffffffff840a151b>] tcp_keepalive_timer+0x17b/0x230
      [<ffffffff83b3f799>] call_timer_fn+0x39/0xf0
      [<ffffffff83b40797>] run_timer_softirq+0x1d7/0x280
      [<ffffffff83a04ddb>] __do_softirq+0xcb/0x257
      [<ffffffff83ae03ac>] irq_exit+0x9c/0xb0
      [<ffffffff83a04c1a>] smp_apic_timer_interrupt+0x6a/0x80
      [<ffffffff83a03eaf>] apic_timer_interrupt+0x7f/0x90
      <EOI>
      [<ffffffff83fed2ea>] ? cpuidle_enter_state+0x13a/0x3b0
      [<ffffffff83fed2cd>] ? cpuidle_enter_state+0x11d/0x3b0
    
    Tested:
    
    Following packetdrill no longer crashes the kernel
    
    `echo 0 >/proc/sys/net/ipv4/tcp_timestamps`
    
    // Cache warmup: send a Fast Open cookie request
        0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
       +0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
       +0 setsockopt(3, SOL_TCP, TCP_FASTOPEN_CONNECT, [1], 4) = 0
       +0 connect(3, ..., ...) = -1 EINPROGRESS (Operation is now in progress)
       +0 > S 0:0(0) <mss 1460,nop,nop,sackOK,nop,wscale 8,FO,nop,nop>
     +.01 < S. 123:123(0) ack 1 win 14600 <mss 1460,nop,nop,sackOK,nop,wscale 6,FO abcd1234,nop,nop>
       +0 > . 1:1(0) ack 1
       +0 close(3) = 0
       +0 > F. 1:1(0) ack 1
       +0 < F. 1:1(0) ack 2 win 92
       +0 > .  2:2(0) ack 2
    
       +0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 4
       +0 fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
       +0 setsockopt(4, SOL_TCP, TCP_FASTOPEN_CONNECT, [1], 4) = 0
       +0 setsockopt(4, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
     +.01 connect(4, ..., ...) = 0
       +0 setsockopt(4, SOL_TCP, TCP_KEEPIDLE, [5], 4) = 0
       +10 close(4) = 0
    
    `echo 1 >/proc/sys/net/ipv4/tcp_timestamps`
    
    Fixes: 19f6d3f ("net/tcp-fastopen: Add new API support")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: Wei Wang <weiwan@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Eric Dumazet authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    05046af View commit details
    Browse the repository at this point in the history
  5. bpf, s390: fix jit branch offset related to ldimm64

    [ Upstream commit b0a0c25 ]
    
    While testing some other work that required JIT modifications, I
    run into test_bpf causing a hang when JIT enabled on s390. The
    problematic test case was the one from ddc665a (bpf, arm64:
    fix jit branch offset related to ldimm64), and turns out that we
    do have a similar issue on s390 as well. In bpf_jit_prog() we
    update next instruction address after returning from bpf_jit_insn()
    with an insn_count. bpf_jit_insn() returns either -1 in case of
    error (e.g. unsupported insn), 1 or 2. The latter is only the
    case for ldimm64 due to spanning 2 insns, however, next address
    is only set to i + 1 not taking actual insn_count into account,
    thus fix is to use insn_count instead of 1. bpf_jit_enable in
    mode 2 provides also disasm on s390:
    
    Before fix:
    
      000003ff800349b6: a7f40003   brc     15,3ff800349bc                 ; target
      000003ff800349ba: 0000               unknown
      000003ff800349bc: e3b0f0700024       stg     %r11,112(%r15)
      000003ff800349c2: e3e0f0880024       stg     %r14,136(%r15)
      000003ff800349c8: 0db0               basr    %r11,%r0
      000003ff800349ca: c0ef00000000       llilf   %r14,0
      000003ff800349d0: e320b0360004       lg      %r2,54(%r11)
      000003ff800349d6: e330b03e0004       lg      %r3,62(%r11)
      000003ff800349dc: ec23ffeda065       clgrj   %r2,%r3,10,3ff800349b6 ; jmp
      000003ff800349e2: e3e0b0460004       lg      %r14,70(%r11)
      000003ff800349e8: e3e0b04e0004       lg      %r14,78(%r11)
      000003ff800349ee: b904002e   lgr     %r2,%r14
      000003ff800349f2: e3b0f0700004       lg      %r11,112(%r15)
      000003ff800349f8: e3e0f0880004       lg      %r14,136(%r15)
      000003ff800349fe: 07fe               bcr     15,%r14
    
    After fix:
    
      000003ff80ef3db4: a7f40003   brc     15,3ff80ef3dba
      000003ff80ef3db8: 0000               unknown
      000003ff80ef3dba: e3b0f0700024       stg     %r11,112(%r15)
      000003ff80ef3dc0: e3e0f0880024       stg     %r14,136(%r15)
      000003ff80ef3dc6: 0db0               basr    %r11,%r0
      000003ff80ef3dc8: c0ef00000000       llilf   %r14,0
      000003ff80ef3dce: e320b0360004       lg      %r2,54(%r11)
      000003ff80ef3dd4: e330b03e0004       lg      %r3,62(%r11)
      000003ff80ef3dda: ec230006a065       clgrj   %r2,%r3,10,3ff80ef3de6 ; jmp
      000003ff80ef3de0: e3e0b0460004       lg      %r14,70(%r11)
      000003ff80ef3de6: e3e0b04e0004       lg      %r14,78(%r11)          ; target
      000003ff80ef3dec: b904002e   lgr     %r2,%r14
      000003ff80ef3df0: e3b0f0700004       lg      %r11,112(%r15)
      000003ff80ef3df6: e3e0f0880004       lg      %r14,136(%r15)
      000003ff80ef3dfc: 07fe               bcr     15,%r14
    
    test_bpf.ko suite runs fine after the fix.
    
    Fixes: 0546231 ("s390/bpf: Add s390x eBPF JIT compiler backend")
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Tested-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    borkmann authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    1b582a2 View commit details
    Browse the repository at this point in the history
  6. net/mlx4_en: don't set CHECKSUM_COMPLETE on SCTP packets

    [ Upstream commit e718fe4 ]
    
    if the NIC fails to validate the checksum on TCP/UDP, and validation of IP
    checksum is successful, the driver subtracts the pseudo-header checksum
    from the value obtained by the hardware and sets CHECKSUM_COMPLETE. Don't
    do that if protocol is IPPROTO_SCTP, otherwise CRC32c validation fails.
    
    V2: don't test MLX4_CQE_STATUS_IPV6 if MLX4_CQE_STATUS_IPV4 is set
    
    Reported-by: Shuang Li <shuali@redhat.com>
    Fixes: f8c6455 ("net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE")
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Acked-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dcaratti authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    35d9014 View commit details
    Browse the repository at this point in the history
  7. net: sched: set xt_tgchk_param par.nft_compat as 0 in ipt_init_target

    [ Upstream commit 96d9703 ]
    
    Commit 55917a2 ("netfilter: x_tables: add context to know if
    extension runs from nft_compat") introduced a member nft_compat to
    xt_tgchk_param structure.
    
    But it didn't set it's value for ipt_init_target. With unexpected
    value in par.nft_compat, it may return unexpected result in some
    target's checkentry.
    
    This patch is to set all it's fields as 0 and only initialize the
    non-zero fields in ipt_init_target.
    
    v1->v2:
      As Wang Cong's suggestion, fix it by setting all it's fields as
      0 and only initializing the non-zero fields.
    
    Fixes: 55917a2 ("netfilter: x_tables: add context to know if extension runs from nft_compat")
    Suggested-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lxin authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    e392e30 View commit details
    Browse the repository at this point in the history
  8. tcp: fastopen: tcp_connect() must refresh the route

    [ Upstream commit 8ba6092 ]
    
    With new TCP_FASTOPEN_CONNECT socket option, there is a possibility
    to call tcp_connect() while socket sk_dst_cache is either NULL
    or invalid.
    
     +0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 4
     +0 fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
     +0 setsockopt(4, SOL_TCP, TCP_FASTOPEN_CONNECT, [1], 4) = 0
     +0 connect(4, ..., ...) = 0
    
    << sk->sk_dst_cache becomes obsolete, or even set to NULL >>
    
     +1 sendto(4, ..., 1000, MSG_FASTOPEN, ..., ...) = 1000
    
    We need to refresh the route otherwise bad things can happen,
    especially when syzkaller is running on the host :/
    
    Fixes: 19f6d3f ("net/tcp-fastopen: Add new API support")
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Wei Wang <weiwan@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Acked-by: Wei Wang <weiwan@google.com>
    Acked-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Eric Dumazet authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    87fdcfe View commit details
    Browse the repository at this point in the history
  9. net: avoid skb_warn_bad_offload false positives on UFO

    [ Upstream commit 8d63bee ]
    
    skb_warn_bad_offload triggers a warning when an skb enters the GSO
    stack at __skb_gso_segment that does not have CHECKSUM_PARTIAL
    checksum offload set.
    
    Commit b2504a5 ("net: reduce skb_warn_bad_offload() noise")
    observed that SKB_GSO_DODGY producers can trigger the check and
    that passing those packets through the GSO handlers will fix it
    up. But, the software UFO handler will set ip_summed to
    CHECKSUM_NONE.
    
    When __skb_gso_segment is called from the receive path, this
    triggers the warning again.
    
    Make UFO set CHECKSUM_UNNECESSARY instead of CHECKSUM_NONE. On
    Tx these two are equivalent. On Rx, this better matches the
    skb state (checksum computed), as CHECKSUM_NONE here means no
    checksum computed.
    
    See also this thread for context:
    http://patchwork.ozlabs.org/patch/799015/
    
    Fixes: b2504a5 ("net: reduce skb_warn_bad_offload() noise")
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    wdebruij authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    69ffc96 View commit details
    Browse the repository at this point in the history
  10. igmp: Fix regression caused by igmp sysctl namespace code.

    [ Upstream commit 1714020 ]
    
    Commit dcd8799 ("igmp: net: Move igmp namespace init to correct file")
    moved the igmp sysctls initialization from tcp_sk_init to igmp_net_init. This
    function is only called as part of per-namespace initialization, only if
    CONFIG_IP_MULTICAST is defined, otherwise igmp_mc_init() call in ip_init is
    compiled out, casuing the igmp pernet ops to not be registerd and those sysctl
    being left initialized with 0. However, there are certain functions, such as
    ip_mc_join_group which are always compiled and make use of some of those
    sysctls. Let's do a partial revert of the aforementioned commit and move the
    sysctl initialization into inet_init_net, that way they will always have
    sane values.
    
    Fixes: dcd8799 ("igmp: net: Move igmp namespace init to correct file")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=196595
    Reported-by: Gerardo Exequiel Pozzi <vmlinuz386@gmail.com>
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lorddoskias authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    f628c9d View commit details
    Browse the repository at this point in the history
  11. packet: fix tp_reserve race in packet_set_ring

    [ Upstream commit c27927e ]
    
    Updates to tp_reserve can race with reads of the field in
    packet_set_ring. Avoid this by holding the socket lock during
    updates in setsockopt PACKET_RESERVE.
    
    This bug was discovered by syzkaller.
    
    Fixes: 8913336 ("packet: add PACKET_RESERVE sockopt")
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    wdebruij authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    e584135 View commit details
    Browse the repository at this point in the history
  12. revert "net: account for current skb length when deciding about UFO"

    This reverts commit ef09c9f which is
    commit a5cb659 upstream as it causes
    merge issues with later patches that are much more important...
    
    Cc: Michal Kubecek <mkubecek@suse.cz>
    Cc: Vlad Yasevich <vyasevic@redhat.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    53eed8a View commit details
    Browse the repository at this point in the history
  13. revert "ipv4: Should use consistent conditional judgement for ip frag…

    …ment in __ip_append_data and ip_finish_output"
    
    This reverts commit f102bb7 which is
    commit 0a28cfd upstream as there is
    another patch that needs to be applied instead of this one.
    
    Cc: Zheng Li <james.z.li@ericsson.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    4688f04 View commit details
    Browse the repository at this point in the history
  14. udp: consistently apply ufo or fragmentation

    [ Upstream commit 85f1bd9 ]
    
    When iteratively building a UDP datagram with MSG_MORE and that
    datagram exceeds MTU, consistently choose UFO or fragmentation.
    
    Once skb_is_gso, always apply ufo. Conversely, once a datagram is
    split across multiple skbs, do not consider ufo.
    
    Sendpage already maintains the first invariant, only add the second.
    IPv6 does not have a sendpage implementation to modify.
    
    A gso skb must have a partial checksum, do not follow sk_no_check_tx
    in udp_send_skb.
    
    Found by syzkaller.
    
    Fixes: e89e9cf ("[IPv4/IPv6]: UFO Scatter-gather approach")
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    wdebruij authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    33dc6a6 View commit details
    Browse the repository at this point in the history
  15. sparc64: Prevent perf from running during super critical sections

    commit fc290a1 upstream.
    
    This fixes another cause of random segfaults and bus errors that may
    occur while running perf with the callgraph option.
    
    Critical sections beginning with spin_lock_irqsave() raise the interrupt
    level to PIL_NORMAL_MAX (14) and intentionally do not block performance
    counter interrupts, which arrive at PIL_NMI (15).
    
    But some sections of code are "super critical" with respect to perf
    because the perf_callchain_user() path accesses user space and may cause
    TLB activity as well as faults as it unwinds the user stack.
    
    One particular critical section occurs in switch_mm:
    
            spin_lock_irqsave(&mm->context.lock, flags);
            ...
            load_secondary_context(mm);
            tsb_context_switch(mm);
            ...
            spin_unlock_irqrestore(&mm->context.lock, flags);
    
    If a perf interrupt arrives in between load_secondary_context() and
    tsb_context_switch(), then perf_callchain_user() could execute with
    the context ID of one process, but with an active TSB for a different
    process. When the user stack is accessed, it is very likely to
    incur a TLB miss, since the h/w context ID has been changed. The TLB
    will then be reloaded with a translation from the TSB for one process,
    but using a context ID for another process. This exposes memory from
    one process to another, and since it is a mapping for stack memory,
    this usually causes the new process to crash quickly.
    
    This super critical section needs more protection than is provided
    by spin_lock_irqsave() since perf interrupts must not be allowed in.
    
    Since __tsb_context_switch already goes through the trouble of
    disabling interrupts completely, we fix this by moving the secondary
    context load down into this better protected region.
    
    Orabug: 25577560
    
    Signed-off-by: Dave Aldridge <david.j.aldridge@oracle.com>
    Signed-off-by: Rob Gardner <rob.gardner@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Rob Gardner authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    6309eb7 View commit details
    Browse the repository at this point in the history
  16. KVM: arm/arm64: Handle hva aging while destroying the vm

    commit 7e5a672 upstream.
    
    The mmu_notifier_release() callback of KVM triggers cleaning up
    the stage2 page table on kvm-arm. However there could be other
    notifier callbacks in parallel with the mmu_notifier_release(),
    which could cause the call backs ending up in an empty stage2
    page table. Make sure we check it for all the notifier callbacks.
    
    Fixes: commit 293f293 ("kvm-arm: Unmap shadow pagetables properly")
    Reported-by: Alex Graf <agraf@suse.de>
    Reviewed-by: Christoffer Dall <cdall@linaro.org>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Suzuki K Poulose authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    3f0075c View commit details
    Browse the repository at this point in the history
  17. Revert "ARM: dts: sun8i: Support DTB build for NanoPi M1"

    This reverts commit 1e9e717 which is
    commit 661ccdc upstream.
    
    It's not needed in 4.9, and it breaks the build.
    
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Cc: Milo Kim <woogyom.kim@gmail.com>
    Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
    Cc: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    1166e3e View commit details
    Browse the repository at this point in the history
  18. Linux 4.9.43

    gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    6da35f4 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2017

  1. mm: ratelimit PFNs busy info message

    commit 75dddef upstream.
    
    The RDMA subsystem can generate several thousand of these messages per
    second eventually leading to a kernel crash.  Ratelimit these messages
    to prevent this crash.
    
    Doug said:
     "I've been carrying a version of this for several kernel versions. I
      don't remember when they started, but we have one (and only one) class
      of machines: Dell PE R730xd, that generate these errors. When it
      happens, without a rate limit, we get rcu timeouts and kernel oopses.
      With the rate limit, we just get a lot of annoying kernel messages but
      the machine continues on, recovers, and eventually the memory
      operations all succeed"
    
    And:
     "> Well... why are all these EBUSY's occurring? It sounds inefficient
      > (at least) but if it is expected, normal and unavoidable then
      > perhaps we should just remove that message altogether?
    
      I don't have an answer to that question. To be honest, I haven't
      looked real hard. We never had this at all, then it started out of the
      blue, but only on our Dell 730xd machines (and it hits all of them),
      but no other classes or brands of machines. And we have our 730xd
      machines loaded up with different brands and models of cards (for
      instance one dedicated to mlx4 hardware, one for qib, one for mlx5, an
      ocrdma/cxgb4 combo, etc), so the fact that it hit all of the machines
      meant it wasn't tied to any particular brand/model of RDMA hardware.
      To me, it always smelled of a hardware oddity specific to maybe the
      CPUs or mainboard chipsets in these machines, so given that I'm not an
      mm expert anyway, I never chased it down.
    
      A few other relevant details: it showed up somewhere around 4.8/4.9 or
      thereabouts. It never happened before, but the prinkt has been there
      since the 3.18 days, so possibly the test to trigger this message was
      changed, or something else in the allocator changed such that the
      situation started happening on these machines?
    
      And, like I said, it is specific to our 730xd machines (but they are
      all identical, so that could mean it's something like their specific
      ram configuration is causing the allocator to hit this on these
      machine but not on other machines in the cluster, I don't want to say
      it's necessarily the model of chipset or CPU, there are other bits of
      identicalness between these machines)"
    
    Link: http://lkml.kernel.org/r/499c0f6cc10d6eb829a67f2a4d75b4228a9b356e.1501695897.git.jtoppins@redhat.com
    Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
    Reviewed-by: Doug Ledford <dledford@redhat.com>
    Tested-by: Doug Ledford <dledford@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: Hillf Danton <hillf.zj@alibaba-inc.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Jonathan Toppins authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    b56cd77 View commit details
    Browse the repository at this point in the history
  2. mm: fix list corruptions on shmem shrinklist

    commit d041353 upstream.
    
    We saw many list corruption warnings on shmem shrinklist:
    
      WARNING: CPU: 18 PID: 177 at lib/list_debug.c:59 __list_del_entry+0x9e/0xc0
      list_del corruption. prev->next should be ffff9ae5694b82d8, but was ffff9ae5699ba960
      Modules linked in: intel_rapl sb_edac edac_core x86_pkg_temp_thermal coretemp iTCO_wdt iTCO_vendor_support crct10dif_pclmul crc32_pclmul ghash_clmulni_intel raid0 dcdbas shpchp wmi hed i2c_i801 ioatdma lpc_ich i2c_smbus acpi_cpufreq tcp_diag inet_diag sch_fq_codel ipmi_si ipmi_devintf ipmi_msghandler igb ptp crc32c_intel pps_core i2c_algo_bit i2c_core dca ipv6 crc_ccitt
      CPU: 18 PID: 177 Comm: kswapd1 Not tainted 4.9.34-t3.el7.twitter.x86_64 #1
      Hardware name: Dell Inc. PowerEdge C6220/0W6W6G, BIOS 2.2.3 11/07/2013
      Call Trace:
        dump_stack+0x4d/0x66
        __warn+0xcb/0xf0
        warn_slowpath_fmt+0x4f/0x60
        __list_del_entry+0x9e/0xc0
        shmem_unused_huge_shrink+0xfa/0x2e0
        shmem_unused_huge_scan+0x20/0x30
        super_cache_scan+0x193/0x1a0
        shrink_slab.part.41+0x1e3/0x3f0
        shrink_slab+0x29/0x30
        shrink_node+0xf9/0x2f0
        kswapd+0x2d8/0x6c0
        kthread+0xd7/0xf0
        ret_from_fork+0x22/0x30
    
      WARNING: CPU: 23 PID: 639 at lib/list_debug.c:33 __list_add+0x89/0xb0
      list_add corruption. prev->next should be next (ffff9ae5699ba960), but was ffff9ae5694b82d8. (prev=ffff9ae5694b82d8).
      Modules linked in: intel_rapl sb_edac edac_core x86_pkg_temp_thermal coretemp iTCO_wdt iTCO_vendor_support crct10dif_pclmul crc32_pclmul ghash_clmulni_intel raid0 dcdbas shpchp wmi hed i2c_i801 ioatdma lpc_ich i2c_smbus acpi_cpufreq tcp_diag inet_diag sch_fq_codel ipmi_si ipmi_devintf ipmi_msghandler igb ptp crc32c_intel pps_core i2c_algo_bit i2c_core dca ipv6 crc_ccitt
      CPU: 23 PID: 639 Comm: systemd-udevd Tainted: G        W       4.9.34-t3.el7.twitter.x86_64 #1
      Hardware name: Dell Inc. PowerEdge C6220/0W6W6G, BIOS 2.2.3 11/07/2013
      Call Trace:
        dump_stack+0x4d/0x66
        __warn+0xcb/0xf0
        warn_slowpath_fmt+0x4f/0x60
        __list_add+0x89/0xb0
        shmem_setattr+0x204/0x230
        notify_change+0x2ef/0x440
        do_truncate+0x5d/0x90
        path_openat+0x331/0x1190
        do_filp_open+0x7e/0xe0
        do_sys_open+0x123/0x200
        SyS_open+0x1e/0x20
        do_syscall_64+0x61/0x170
        entry_SYSCALL64_slow_path+0x25/0x25
    
    The problem is that shmem_unused_huge_shrink() moves entries from the
    global sbinfo->shrinklist to its local lists and then releases the
    spinlock.  However, a parallel shmem_setattr() could access one of these
    entries directly and add it back to the global shrinklist if it is
    removed, with the spinlock held.
    
    The logic itself looks solid since an entry could be either in a local
    list or the global list, otherwise it is removed from one of them by
    list_del_init().  So probably the race condition is that, one CPU is in
    the middle of INIT_LIST_HEAD() but the other CPU calls list_empty()
    which returns true too early then the following list_add_tail() sees a
    corrupted entry.
    
    list_empty_careful() is designed to fix this situation.
    
    [akpm@linux-foundation.org: add comments]
    Link: http://lkml.kernel.org/r/20170803054630.18775-1-xiyou.wangcong@gmail.com
    Fixes: 779750d ("shmem: split huge pages beyond i_size under memory pressure")
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Hugh Dickins <hughd@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    congwang authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    e228691 View commit details
    Browse the repository at this point in the history
  3. futex: Remove unnecessary warning from get_futex_key

    commit 48fb6f4 upstream.
    
    Commit 65d8fc7 ("futex: Remove requirement for lock_page() in
    get_futex_key()") removed an unnecessary lock_page() with the
    side-effect that page->mapping needed to be treated very carefully.
    
    Two defensive warnings were added in case any assumption was missed and
    the first warning assumed a correct application would not alter a
    mapping backing a futex key.  Since merging, it has not triggered for
    any unexpected case but Mark Rutland reported the following bug
    triggering due to the first warning.
    
      kernel BUG at kernel/futex.c:679!
      Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 0 PID: 3695 Comm: syz-executor1 Not tainted 4.13.0-rc3-00020-g307fec773ba3 #3
      Hardware name: linux,dummy-virt (DT)
      task: ffff80001e271780 task.stack: ffff000010908000
      PC is at get_futex_key+0x6a4/0xcf0 kernel/futex.c:679
      LR is at get_futex_key+0x6a4/0xcf0 kernel/futex.c:679
      pc : [<ffff00000821ac14>] lr : [<ffff00000821ac14>] pstate: 80000145
    
    The fact that it's a bug instead of a warning was due to an unrelated
    arm64 problem, but the warning itself triggered because the underlying
    mapping changed.
    
    This is an application issue but from a kernel perspective it's a
    recoverable situation and the warning is unnecessary so this patch
    removes the warning.  The warning may potentially be triggered with the
    following test program from Mark although it may be necessary to adjust
    NR_FUTEX_THREADS to be a value smaller than the number of CPUs in the
    system.
    
        #include <linux/futex.h>
        #include <pthread.h>
        #include <stdio.h>
        #include <stdlib.h>
        #include <sys/mman.h>
        #include <sys/syscall.h>
        #include <sys/time.h>
        #include <unistd.h>
    
        #define NR_FUTEX_THREADS 16
        pthread_t threads[NR_FUTEX_THREADS];
    
        void *mem;
    
        #define MEM_PROT  (PROT_READ | PROT_WRITE)
        #define MEM_SIZE  65536
    
        static int futex_wrapper(int *uaddr, int op, int val,
                                 const struct timespec *timeout,
                                 int *uaddr2, int val3)
        {
            syscall(SYS_futex, uaddr, op, val, timeout, uaddr2, val3);
        }
    
        void *poll_futex(void *unused)
        {
            for (;;) {
                futex_wrapper(mem, FUTEX_CMP_REQUEUE_PI, 1, NULL, mem + 4, 1);
            }
        }
    
        int main(int argc, char *argv[])
        {
            int i;
    
            mem = mmap(NULL, MEM_SIZE, MEM_PROT,
                   MAP_SHARED | MAP_ANONYMOUS, -1, 0);
    
            printf("Mapping @ %p\n", mem);
    
            printf("Creating futex threads...\n");
    
            for (i = 0; i < NR_FUTEX_THREADS; i++)
                pthread_create(&threads[i], NULL, poll_futex, NULL);
    
            printf("Flipping mapping...\n");
            for (;;) {
                mmap(mem, MEM_SIZE, MEM_PROT,
                     MAP_FIXED | MAP_SHARED | MAP_ANONYMOUS, -1, 0);
            }
    
            return 0;
        }
    
    Reported-and-tested-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Mel Gorman authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    0041042 View commit details
    Browse the repository at this point in the history
  4. xtensa: fix cache aliasing handling code for WT cache

    commit 6d0f581 upstream.
    
    Currently building kernel for xtensa core with aliasing WT cache fails
    with the following messages:
    
      mm/memory.c:2152: undefined reference to `flush_dcache_page'
      mm/memory.c:2332: undefined reference to `local_flush_cache_page'
      mm/memory.c:1919: undefined reference to `local_flush_cache_range'
      mm/memory.c:4179: undefined reference to `copy_to_user_page'
      mm/memory.c:4183: undefined reference to `copy_from_user_page'
    
    This happens because implementation of these functions is only compiled
    when data cache is WB, which looks wrong: even when data cache doesn't
    need flushing it still needs invalidation. The functions like
    __flush_[invalidate_]dcache_* are correctly defined for both WB and WT
    caches (and even if they weren't that'd still be ok, just slower).
    
    Fix this by providing the same implementation of the above functions for
    both WB and WT cache.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jcmvbkbc authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    03973c5 View commit details
    Browse the repository at this point in the history
  5. xtensa: mm/cache: add missing EXPORT_SYMBOLs

    commit bc652eb upstream.
    
    Functions clear_user_highpage, copy_user_highpage, flush_dcache_page,
    local_flush_cache_range and local_flush_cache_page may be used from
    modules. Export them.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jcmvbkbc authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    a3ab0f0 View commit details
    Browse the repository at this point in the history
  6. xtensa: don't limit csum_partial export by CONFIG_NET

    commit 7f81e55 upstream.
    
    csum_partial and csum_partial_copy_generic are defined unconditionally
    and are available even when CONFIG_NET is disabled. They are used not
    only by the network drivers, but also by scsi and media.
    Don't limit these functions export by CONFIG_NET.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jcmvbkbc authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    a311810 View commit details
    Browse the repository at this point in the history
  7. mtd: nand: Fix timing setup for NANDs that do not support SET FEATURES

    commit a11bf5e upstream.
    
    Some ONFI NANDs do not support the SET/GET FEATURES commands, which,
    according to the spec, is perfectly valid.
    
    On these NANDs we can't set a specific timing mode using the "timing
    mode" feature, and we should assume the NAND does not require any setup
    to enter a specific timing mode.
    
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Fixes: d8e725d ("mtd: nand: automate NAND timings selection")
    Reported-by: Alexander Dahl <ada@thorsis.com>
    Tested-by: Alexander Dahl <ada@thorsis.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Boris Brezillon authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    ced271b View commit details
    Browse the repository at this point in the history
  8. iscsi-target: fix memory leak in iscsit_setup_text_cmd()

    commit ea8dc5b upstream.
    
    On receiving text request iscsi-target allocates buffer for
    payload in iscsit_handle_text_cmd() and assigns buffer pointer
    to cmd->text_in_ptr, this buffer is currently freed in
    iscsit_release_cmd(), if iscsi-target sets 'C' bit in text
    response then it will receive another text request from the
    initiator with ttt != 0xffffffff in this case iscsi-target
    will find cmd using itt and call iscsit_setup_text_cmd()
    which will set cmd->text_in_ptr to NULL without freeing
    previously allocated buffer.
    
    This patch fixes this issue by calling kfree(cmd->text_in_ptr)
    in iscsit_setup_text_cmd() before assigning NULL to it.
    
    For the first text request cmd->text_in_ptr is NULL as
    cmd is memset to 0 in iscsit_allocate_cmd().
    
    Signed-off-by: Varun Prakash <varun@chelsio.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Varun Prakash authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    e6a0599 View commit details
    Browse the repository at this point in the history
  9. iscsi-target: Fix iscsi_np reset hung task during parallel delete

    commit 978d13d upstream.
    
    This patch fixes a bug associated with iscsit_reset_np_thread()
    that can occur during parallel configfs rmdir of a single iscsi_np
    used across multiple iscsi-target instances, that would result in
    hung task(s) similar to below where configfs rmdir process context
    was blocked indefinately waiting for iscsi_np->np_restart_comp
    to finish:
    
    [ 6726.112076] INFO: task dcp_proxy_node_:15550 blocked for more than 120 seconds.
    [ 6726.119440]       Tainted: G        W  O     4.1.26-3321 #2
    [ 6726.125045] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [ 6726.132927] dcp_proxy_node_ D ffff8803f202bc88     0 15550      1 0x00000000
    [ 6726.140058]  ffff8803f202bc88 ffff88085c64d960 ffff88083b3b1ad0 ffff88087fffeb08
    [ 6726.147593]  ffff8803f202c000 7fffffffffffffff ffff88083f459c28 ffff88083b3b1ad0
    [ 6726.155132]  ffff88035373c100 ffff8803f202bca8 ffffffff8168ced2 ffff8803f202bcb8
    [ 6726.162667] Call Trace:
    [ 6726.165150]  [<ffffffff8168ced2>] schedule+0x32/0x80
    [ 6726.170156]  [<ffffffff8168f5b4>] schedule_timeout+0x214/0x290
    [ 6726.176030]  [<ffffffff810caef2>] ? __send_signal+0x52/0x4a0
    [ 6726.181728]  [<ffffffff8168d7d6>] wait_for_completion+0x96/0x100
    [ 6726.187774]  [<ffffffff810e7c80>] ? wake_up_state+0x10/0x10
    [ 6726.193395]  [<ffffffffa035d6e2>] iscsit_reset_np_thread+0x62/0xe0 [iscsi_target_mod]
    [ 6726.201278]  [<ffffffffa0355d86>] iscsit_tpg_disable_portal_group+0x96/0x190 [iscsi_target_mod]
    [ 6726.210033]  [<ffffffffa0363f7f>] lio_target_tpg_store_enable+0x4f/0xc0 [iscsi_target_mod]
    [ 6726.218351]  [<ffffffff81260c5a>] configfs_write_file+0xaa/0x110
    [ 6726.224392]  [<ffffffff811ea364>] vfs_write+0xa4/0x1b0
    [ 6726.229576]  [<ffffffff811eb111>] SyS_write+0x41/0xb0
    [ 6726.234659]  [<ffffffff8169042e>] system_call_fastpath+0x12/0x71
    
    It would happen because each iscsit_reset_np_thread() sets state
    to ISCSI_NP_THREAD_RESET, sends SIGINT, and then blocks waiting
    for completion on iscsi_np->np_restart_comp.
    
    However, if iscsi_np was active processing a login request and
    more than a single iscsit_reset_np_thread() caller to the same
    iscsi_np was blocked on iscsi_np->np_restart_comp, iscsi_np
    kthread process context in __iscsi_target_login_thread() would
    flush pending signals and only perform a single completion of
    np->np_restart_comp before going back to sleep within transport
    specific iscsit_transport->iscsi_accept_np code.
    
    To address this bug, add a iscsi_np->np_reset_count and update
    __iscsi_target_login_thread() to keep completing np->np_restart_comp
    until ->np_reset_count has reached zero.
    
    Reported-by: Gary Guo <ghg@datera.io>
    Tested-by: Gary Guo <ghg@datera.io>
    Cc: Mike Christie <mchristi@redhat.com>
    Cc: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nablio3000 authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    b51a716 View commit details
    Browse the repository at this point in the history
  10. target: Fix node_acl demo-mode + uncached dynamic shutdown regression

    commit 6f48655 upstream.
    
    This patch fixes a generate_node_acls = 1 + cache_dynamic_acls = 0
    regression, that was introduced by
    
      commit 01d4d67
      Author: Nicholas Bellinger <nab@linux-iscsi.org>
      Date:   Wed Dec 7 12:55:54 2016 -0800
    
    which originally had the proper list_del_init() usage, but was
    dropped during list review as it was thought unnecessary by HCH.
    
    However, list_del_init() usage is required during the special
    generate_node_acls = 1 + cache_dynamic_acls = 0 case when
    transport_free_session() does a list_del(&se_nacl->acl_list),
    followed by target_complete_nacl() doing the same thing.
    
    This was manifesting as a general protection fault as reported
    by Justin:
    
    kernel: general protection fault: 0000 [#1] SMP
    kernel: Modules linked in:
    kernel: CPU: 0 PID: 11047 Comm: iscsi_ttx Not tainted 4.13.0-rc2.x86_64.1+ torvalds#20
    kernel: Hardware name: Intel Corporation S5500BC/S5500BC, BIOS S5500.86B.01.00.0064.050520141428 05/05/2014
    kernel: task: ffff88026939e800 task.stack: ffffc90007884000
    kernel: RIP: 0010:target_put_nacl+0x49/0xb0
    kernel: RSP: 0018:ffffc90007887d70 EFLAGS: 00010246
    kernel: RAX: dead000000000200 RBX: ffff8802556ca000 RCX: 0000000000000000
    kernel: RDX: dead000000000100 RSI: 0000000000000246 RDI: ffff8802556ce028
    kernel: RBP: ffffc90007887d88 R08: 0000000000000001 R09: 0000000000000000
    kernel: R10: ffffc90007887df8 R11: ffffea0009986900 R12: ffff8802556ce020
    kernel: R13: ffff8802556ce028 R14: ffff8802556ce028 R15: ffffffff88d85540
    kernel: FS:  0000000000000000(0000) GS:ffff88027fc00000(0000) knlGS:0000000000000000
    kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    kernel: CR2: 00007fffe36f5f94 CR3: 0000000009209000 CR4: 00000000003406f0
    kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    kernel: Call Trace:
    kernel:  transport_free_session+0x67/0x140
    kernel:  transport_deregister_session+0x7a/0xc0
    kernel:  iscsit_close_session+0x92/0x210
    kernel:  iscsit_close_connection+0x5f9/0x840
    kernel:  iscsit_take_action_for_connection_exit+0xfe/0x110
    kernel:  iscsi_target_tx_thread+0x140/0x1e0
    kernel:  ? wait_woken+0x90/0x90
    kernel:  kthread+0x124/0x160
    kernel:  ? iscsit_thread_get_cpumask+0x90/0x90
    kernel:  ? kthread_create_on_node+0x40/0x40
    kernel:  ret_from_fork+0x22/0x30
    kernel: Code: 00 48 89 fb 4c 8b a7 48 01 00 00 74 68 4d 8d 6c 24 08 4c
    89 ef e8 e8 28 43 00 48 8b 93 20 04 00 00 48 8b 83 28 04 00 00 4c 89
    ef <48> 89 42 08 48 89 10 48 b8 00 01 00 00 00 00 ad de 48 89 83 20
    kernel: RIP: target_put_nacl+0x49/0xb0 RSP: ffffc90007887d70
    kernel: ---[ end trace f12821adbfd46fed ]---
    
    To address this, go ahead and use proper list_del_list() for all
    cases of se_nacl->acl_list deletion.
    
    Reported-by: Justin Maggard <jmaggard01@gmail.com>
    Tested-by: Justin Maggard <jmaggard01@gmail.com>
    Cc: Justin Maggard <jmaggard01@gmail.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nablio3000 authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    1da30c2 View commit details
    Browse the repository at this point in the history
  11. fuse: initialize the flock flag in fuse_file on allocation

    commit 68227c0 upstream.
    
    Before the patch, the flock flag could remain uninitialized for the
    lifespan of the fuse_file allocation. Unless set to true in
    fuse_file_flock(), it would remain in an indeterminate state until read in
    an if statement in fuse_release_common(). This could consequently lead to
    taking an unexpected branch in the code.
    
    The bug was discovered by a runtime instrumentation designed to detect use
    of uninitialized memory in the kernel.
    
    Signed-off-by: Mateusz Jurczyk <mjurczyk@google.com>
    Fixes: 37fb3a3 ("fuse: fix flock")
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    j00ru authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    227559e View commit details
    Browse the repository at this point in the history
  12. nand: fix wrong default oob layout for small pages using soft ecc

    commit f7f8c17 upstream.
    
    When using soft ecc, if no ooblayout is given, the core automatically
    uses one of the nand_ooblayout_{sp,lp}*() functions to determine the
    layout inside the out of band data.
    
    Until kernel version 4.6, struct nand_ecclayout was used for that
    purpose. During the migration from 4.6 to 4.7, an error shown up in the
    small page layout, in the case oob section is only 8 bytes long.
    
    The layout was using three bytes (0, 1, 2) for ecc, two bytes (3, 4)
    as free bytes, one byte (5) for bad block marker and finally
    two bytes (6, 7) as free bytes, as shown there:
    
    [linux-4.6] drivers/mtd/nand/nand_base.c:52
    static struct nand_ecclayout nand_oob_8 = {
    	.eccbytes = 3,
    	.eccpos = {0, 1, 2},
    	.oobfree = {
    		{.offset = 3,
    		 .length = 2},
    		{.offset = 6,
    		 .length = 2} }
    };
    
    This fixes the current implementation which is incoherent. It
    references bit 3 at the same time as an ecc byte and a free byte.
    
    Furthermore, it is clear with the previous implementation that there
    is only one ecc section with 8 bytes oob sections. We shall return
    -ERANGE in the nand_ooblayout_ecc_sp() function when asked for the
    second section.
    
    Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
    Fixes: 41b207a ("mtd: nand: implement the default mtd_ooblayout_ops")
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    miquelraynal authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    160c365 View commit details
    Browse the repository at this point in the history
  13. mmc: mmc: correct the logic for setting HS400ES signal voltage

    commit 92ddd95 upstream.
    
    Change the default err value to -EINVAL, make sure the card only
    has type EXT_CSD_CARD_TYPE_HS400_1_8V also do the signal voltage
    setting when select hs400es mode.
    
    Fixes: commit 1720d35 ("mmc: core: switch to 1V8 or 1V2 for hs400es mode")
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Haibo Chen authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    0a205d8 View commit details
    Browse the repository at this point in the history
  14. nfs/flexfiles: fix leak of nfs4_ff_ds_version arrays

    commit 1feb261 upstream.
    
    The client was freeing the nfs4_ff_layout_ds, but not the contained
    nfs4_ff_ds_version array.
    
    Signed-off-by: Weston Andros Adamson <dros@primarydata.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    westonandrosadamson authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    00f3c2a View commit details
    Browse the repository at this point in the history
  15. drm/etnaviv: Fix off-by-one error in reloc checking

    commit d6f756e upstream.
    
    A relocation pointing to the last four bytes of a buffer can
    legitimately happen in the case of small vertex buffers.
    
    Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
    Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
    Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    laanwj authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    4381e2c View commit details
    Browse the repository at this point in the history
  16. drm/i915: Fix out-of-bounds array access in bdw_load_gamma_lut

    commit 5279fc7 upstream.
    
    bdw_load_gamma_lut is writing beyond the array to the maximum value.
    The intend of the function is to clamp values > 1 to 1, so write
    the intended color to the max register.
    
    This fixes the following KASAN warning:
    
    [  197.020857] [IGT] kms_pipe_color: executing
    [  197.063434] [IGT] kms_pipe_color: starting subtest ctm-0-25-pipe0
    [  197.078989] ==================================================================
    [  197.079127] BUG: KASAN: slab-out-of-bounds in bdw_load_gamma_lut.isra.2+0x3b9/0x570 [i915]
    [  197.079188] Read of size 2 at addr ffff8800d38db150 by task kms_pipe_color/1839
    [  197.079208] CPU: 2 PID: 1839 Comm: kms_pipe_color Tainted: G     U 4.13.0-rc1-patser+ #5211
    [  197.079215] Hardware name: NUC5i7RYB, BIOS RYBDWi35.86A.0246.2015.0309.1355 03/09/2015
    [  197.079220] Call Trace:
    [  197.079230]  dump_stack+0x68/0x9e
    [  197.079239]  print_address_description+0x6f/0x250
    [  197.079251]  kasan_report+0x216/0x370
    [  197.079374]  ? bdw_load_gamma_lut.isra.2+0x3b9/0x570 [i915]
    [  197.079451]  ? gen8_write16+0x4e0/0x4e0 [i915]
    [  197.079460]  __asan_report_load2_noabort+0x14/0x20
    [  197.079535]  bdw_load_gamma_lut.isra.2+0x3b9/0x570 [i915]
    [  197.079612]  broadwell_load_luts+0x1df/0x550 [i915]
    [  197.079690]  intel_color_load_luts+0x7b/0x80 [i915]
    [  197.079764]  intel_begin_crtc_commit+0x138/0x760 [i915]
    [  197.079783]  drm_atomic_helper_commit_planes_on_crtc+0x1a3/0x820 [drm_kms_helper]
    [  197.079859]  ? intel_pre_plane_update+0x571/0x580 [i915]
    [  197.079937]  intel_update_crtc+0x238/0x330 [i915]
    [  197.080016]  intel_update_crtcs+0x10f/0x210 [i915]
    [  197.080092]  intel_atomic_commit_tail+0x1552/0x3340 [i915]
    [  197.080101]  ? _raw_spin_unlock+0x3c/0x40
    [  197.080110]  ? __queue_work+0xb40/0xbf0
    [  197.080188]  ? skl_update_crtcs+0xc00/0xc00 [i915]
    [  197.080195]  ? trace_hardirqs_on+0xd/0x10
    [  197.080269]  ? intel_atomic_commit_ready+0x128/0x13c [i915]
    [  197.080329]  ? __i915_sw_fence_complete+0x5b8/0x6d0 [i915]
    [  197.080336]  ? debug_object_activate+0x39e/0x580
    [  197.080397]  ? i915_sw_fence_await+0x30/0x30 [i915]
    [  197.080409]  ? __might_sleep+0x15b/0x180
    [  197.080483]  intel_atomic_commit+0x944/0xa70 [i915]
    [  197.080490]  ? refcount_dec_and_test+0x11/0x20
    [  197.080567]  ? intel_atomic_commit_tail+0x3340/0x3340 [i915]
    [  197.080597]  ? drm_atomic_crtc_set_property+0x303/0x580 [drm]
    [  197.080674]  ? intel_atomic_commit_tail+0x3340/0x3340 [i915]
    [  197.080704]  drm_atomic_commit+0xd7/0xe0 [drm]
    [  197.080722]  drm_atomic_helper_crtc_set_property+0xec/0x130 [drm_kms_helper]
    [  197.080749]  drm_mode_crtc_set_obj_prop+0x7d/0xb0 [drm]
    [  197.080775]  drm_mode_obj_set_property_ioctl+0x50b/0x5d0 [drm]
    [  197.080783]  ? __might_fault+0x104/0x180
    [  197.080809]  ? drm_mode_obj_find_prop_id+0x160/0x160 [drm]
    [  197.080838]  ? drm_mode_obj_find_prop_id+0x160/0x160 [drm]
    [  197.080861]  drm_ioctl_kernel+0x154/0x1a0 [drm]
    [  197.080885]  drm_ioctl+0x624/0x8f0 [drm]
    [  197.080910]  ? drm_mode_obj_find_prop_id+0x160/0x160 [drm]
    [  197.080934]  ? drm_getunique+0x210/0x210 [drm]
    [  197.080943]  ? __handle_mm_fault+0x1bd0/0x1ce0
    [  197.080949]  ? lock_downgrade+0x610/0x610
    [  197.080957]  ? __lru_cache_add+0x15a/0x180
    [  197.080967]  do_vfs_ioctl+0xd92/0xe40
    [  197.080975]  ? ioctl_preallocate+0x1b0/0x1b0
    [  197.080982]  ? selinux_capable+0x20/0x20
    [  197.080991]  ? __do_page_fault+0x7b7/0x9a0
    [  197.080997]  ? lock_downgrade+0x5bb/0x610
    [  197.081007]  ? security_file_ioctl+0x57/0x90
    [  197.081016]  SyS_ioctl+0x4e/0x80
    [  197.081024]  entry_SYSCALL_64_fastpath+0x18/0xad
    [  197.081030] RIP: 0033:0x7f61f287a987
    [  197.081035] RSP: 002b:00007fff7d44d188 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    [  197.081043] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f61f287a987
    [  197.081048] RDX: 00007fff7d44d1c0 RSI: 00000000c01864ba RDI: 0000000000000003
    [  197.081053] RBP: 00007f61f2b3eb00 R08: 0000000000000059 R09: 0000000000000000
    [  197.081058] R10: 0000002ea5c4a290 R11: 0000000000000246 R12: 00007f61f2b3eb58
    [  197.081063] R13: 0000000000001010 R14: 00007f61f2b3eb58 R15: 0000000000002702
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101659
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reported-by: Martin Peres <martin.peres@linux.intel.com>
    Cc: Martin Peres <martin.peres@linux.intel.com>
    Fixes: 82cf435 ("drm/i915: Implement color management on bdw/skl/bxt/kbl")
    Cc: Shashank Sharma <shashank.sharma@intel.com>
    Cc: Kiran S Kumar <kiran.s.kumar@intel.com>
    Cc: Kausal Malladi <kausalmalladi@gmail.com>
    Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: Daniel Vetter <daniel.vetter@intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: intel-gfx@lists.freedesktop.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20170724091431.24251-1-maarten.lankhorst@linux.intel.com
    Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
    (cherry picked from commit 09a92bc)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mlankhorst authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    2b3bf20 View commit details
    Browse the repository at this point in the history
  17. USB: serial: option: add D-Link DWM-222 device ID

    commit fd1b866 upstream.
    
    Add device id for D-Link DWM-222.
    
    Signed-off-by: Hector Martin <marcan@marcan.st>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    marcan authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    e27f58c View commit details
    Browse the repository at this point in the history
  18. USB: serial: cp210x: add support for Qivicon USB ZigBee dongle

    commit 9585e34 upstream.
    
    The German Telekom offers a ZigBee USB Stick under the brand name Qivicon
    for their SmartHome Home Base in its 1. Generation. The productId is not
    known by the according kernel module, this patch adds support for it.
    
    Signed-off-by: Stefan Triller <github@stefantriller.de>
    Reviewed-by: Frans Klaver <fransklaver@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    t2000 authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    5665164 View commit details
    Browse the repository at this point in the history
  19. USB: serial: pl2303: add new ATEN device id

    commit 3b6bcd3 upstream.
    
    This adds a new ATEN device id for a new pl2303-based device.
    
    Reported-by: Peter Kuo <PeterKuo@aten.com.tw>
    Cc: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    4fd8c36 View commit details
    Browse the repository at this point in the history
  20. usb: musb: fix tx fifo flush handling again

    commit 45d7386 upstream.
    
    commit 68fe05e ("usb: musb: fix tx fifo flush handling") drops the
    1ms delay trying to solve the long disconnect time issue when
    application queued many tx urbs. However, the 1ms delay is needed for
    some use cases, for example, without the delay, reconnecting AR9271 WIFI
    dongle no longer works if the connection is dropped from the AP.
    
    So let's add back the 1ms delay in musb_h_tx_flush_fifo(), and solve the
    long disconnect time problem with a separate patch for
    usb_hcd_flush_endpoint().
    
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Bin Liu authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    821ccbe View commit details
    Browse the repository at this point in the history
  21. USB: hcd: Mark secondary HCD as dead if the primary one died

    commit cd5a6a4 upstream.
    
    Make usb_hc_died() clear the HCD_FLAG_RH_RUNNING flag for the shared
    HCD and set HCD_FLAG_DEAD for it, in analogy with what is done for
    the primary one.
    
    Among other thigs, this prevents check_root_hub_suspended() from
    returning -EBUSY for dead HCDs which helps to work around system
    suspend issues in some situations.
    
    This actually fixes occasional suspend failures on one of my test
    machines.
    
    Suggested-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rafaeljw authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    199a3f2 View commit details
    Browse the repository at this point in the history
  22. staging:iio:resolver:ad2s1210 fix negative IIO_ANGL_VEL read

    commit 105967a upstream.
    
    gcc-7 points out an older regression:
    
    drivers/staging/iio/resolver/ad2s1210.c: In function 'ad2s1210_read_raw':
    drivers/staging/iio/resolver/ad2s1210.c:515:42: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]
    
    The original code had 'unsigned short' here, but incorrectly got
    converted to 'bool'. This reverts the regression and uses a normal
    type instead.
    
    Fixes: 2914854 ("staging:iio:resolver:ad2s1210 minimal chan spec conversion.")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    arndb authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    c534739 View commit details
    Browse the repository at this point in the history
  23. iio: accel: bmc150: Always restore device to normal mode after suspen…

    …d-resume
    
    commit e59e189 upstream.
    
    After probe we would put the device in normal mode, after a runtime
    suspend-resume we would put it back in normal mode. But for a regular
    suspend-resume we would only put it back in normal mode if triggers
    or events have been requested.  This is not consistent and breaks
    reading raw values after a suspend-resume.
    
    This commit changes the regular resume path to also unconditionally put
    the device back in normal mode, fixing reading of raw values not working
    after a regular suspend-resume cycle.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jwrdegoede authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    1ca3869 View commit details
    Browse the repository at this point in the history
  24. iio: light: tsl2563: use correct event code

    commit a3507e4 upstream.
    
    The TSL2563 driver provides three iio channels, two of which are raw ADC
    channels (channel 0 and channel 1) in the device and the remaining one
    is calculated by the two.  The ADC channel 0 only supports programmable
    interrupt with threshold settings and this driver supports the event but
    the generated event code does not contain the corresponding iio channel
    type.
    
    This is going to change userspace ABI.  Hopefully fixing this to be
    what it should always have been won't break any userspace code.
    
    Cc: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mita authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    bbae082 View commit details
    Browse the repository at this point in the history
  25. staging: comedi: comedi_fops: do not call blocking ops when !TASK_RUN…

    …NING
    
    commit cef9886 upstream.
    
    Comedi's read and write file operation handlers (`comedi_read()` and
    `comedi_write()`) currently call `copy_to_user()` or `copy_from_user()`
    whilst in the `TASK_INTERRUPTIBLE` state, which falls foul of the
    `might_fault()` checks when enabled.  Fix it by setting the current task
    state back to `TASK_RUNNING` a bit earlier before calling these
    functions.
    
    Reported-by: Piotr Gregor <piotrgregor@rsyncme.org>
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ian-abbott authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    b189f8e View commit details
    Browse the repository at this point in the history
  26. uas: Add US_FL_IGNORE_RESIDUE for Initio Corporation INIC-3069

    commit 89f23d5 upstream.
    
    Similar to commit d595259 ("usb-storage: Add ignore-residue quirk for
    Initio INIC-3619") for INIC-3169 in unusual_devs.h but INIC-3069 already
    present in unusual_uas.h. Both in same controller IC family.
    
    Issue is that MakeMKV fails during key exchange with installed bluray drive
    with following error:
    
    002004:0000 Error 'Scsi error - ILLEGAL REQUEST:COPY PROTECTION KEY EXCHANGE FAILURE - KEY NOT ESTABLISHED'
    occurred while issuing SCSI command AD010..080002400 to device 'SG:dev_11:0'
    
    Signed-off-by: Alan Swanson <reiver@improbability.net>
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    alanswanson authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    a09ecc9 View commit details
    Browse the repository at this point in the history
  27. usb: gadget: udc: renesas_usb3: Fix usb_gadget_giveback_request() cal…

    …ling
    
    commit aca5b9e upstream.
    
    According to the gadget.h, a "complete" function will always be called
    with interrupts disabled. However, sometimes usb3_request_done() function
    is called with interrupts enabled. So, this function should be held
    by spin_lock_irqsave() to disable interruption. Also, this driver has
    to call spin_unlock() to avoid spinlock recursion by this driver before
    calling usb_gadget_giveback_request().
    
    Reported-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
    Tested-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
    Fixes: 746bfe6 ("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller")
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    shimoday authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    2db03a7 View commit details
    Browse the repository at this point in the history
  28. usb: renesas_usbhs: Fix UGCTRL2 value for R-Car Gen3

    commit 2acecd5 upstream.
    
    The latest HW manual (Rev.0.55) shows us this UGCTRL2.VBUSSEL bit.
    If the bit sets to 1, the VBUS drive is controlled by phy related
    registers (called "UCOM Registers" on the manual). Since R-Car Gen3
    environment will control VBUS by phy-rcar-gen3-usb2 driver,
    the UGCTRL2.VBUSSEL bit should be set to 1. So, this patch fixes
    the register's value. Otherwise, even if the ID pin indicates to
    peripheral, the R-Car will output USBn_PWEN to 1 when a host driver
    is running.
    
    Fixes: de18757 ("usb: renesas_usbhs: add R-Car Gen3 power control"
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    shimoday authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    7f737f1 View commit details
    Browse the repository at this point in the history
  29. USB: Check for dropped connection before switching to full speed

    commit 94c43b9 upstream.
    
    Some buggy USB disk adapters disconnect and reconnect multiple times
    during the enumeration procedure.  This may lead to a device
    connecting at full speed instead of high speed, because when the USB
    stack sees that a device isn't able to enumerate at high speed, it
    tries to hand the connection over to a full-speed companion
    controller.
    
    The logic for doing this is careful to check that the device is still
    connected.  But this check is inadequate if the device disconnects and
    reconnects before the check is done.  The symptom is that a device
    works, but much more slowly than it is capable of operating.
    
    The situation was made worse recently by commit 22547c4 ("usb:
    hub: Wait for connection to be reestablished after port reset"), which
    increases the delay following a reset before a disconnect is
    recognized, thus giving the device more time to reconnect.
    
    This patch makes the check more robust.  If the device was
    disconnected at any time during enumeration, we will now skip the
    full-speed handover.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-and-tested-by: Zdenek Kabelac <zkabelac@redhat.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    AlanStern authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    7c2beb1 View commit details
    Browse the repository at this point in the history
  30. usb: core: unlink urbs from the tail of the endpoint's urb_list

    commit 2eac136 upstream.
    
    While unlink an urb, if the urb has been programmed in the controller,
    the controller driver might do some hw related actions to tear down the
    urb.
    
    Currently usb_hcd_flush_endpoint() passes each urb from the head of the
    endpoint's urb_list to the controller driver, which could make the
    controller driver think each urb has been programmed and take the
    unnecessary actions for each urb.
    
    This patch changes the behavior in usb_hcd_flush_endpoint() to pass the
    urbs from the tail of the list, to avoid any unnecessary actions in an
    controller driver.
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Bin Liu authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    42d65cc View commit details
    Browse the repository at this point in the history
  31. usb: quirks: Add no-lpm quirk for Moshi USB to Ethernet Adapter

    commit 7496cfe upstream.
    
    Moshi USB to Ethernet Adapter internally uses a Genesys Logic hub to
    connect to Realtek r8153.
    
    The Realtek r8153 ethernet does not work on the internal hub, no-lpm quirk
    can make it work.
    
    Since another r8153 dongle at my hand does not have the issue, so add
    the quirk to the Genesys Logic hub instead.
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    khfeng authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    f4bbed5 View commit details
    Browse the repository at this point in the history
  32. usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume

    commit e788787 upstream.
    
    Certain HP keyboards would keep inputting a character automatically which
    is the wake-up key after S3 resume
    
    On some AMD platforms USB host fails to respond (by holding resume-K) to
    USB device (an HP keyboard) resume request within 1ms (TURSM) and ensures
    that resume is signaled for at least 20 ms (TDRSMDN), which is defined in
    USB 2.0 spec. The result is that the keyboard is out of function.
    
    In SNPS USB design, the host responds to the resume request only after
    system gets back to S0 and the host gets to functional after the internal
    HW restore operation that is more than 1 second after the initial resume
    request from the USB device.
    
    As a workaround for specific keyboard ID(HP Keyboards), applying port reset
    after resume when the keyboard is plugged in.
    
    Signed-off-by: Sandeep Singh <Sandeep.Singh@amd.com>
    Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
    cc: Nehal Shah <Nehal-bakulchandra.Shah@amd.com>
    Reviewed-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Sandeep Singh authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    4cae4a2 View commit details
    Browse the repository at this point in the history
  33. iio: adc: vf610_adc: Fix VALT selection value for REFSEL bits

    commit d466d3c upstream.
    
    In order to select the alternate voltage reference pair (VALTH/VALTL), the
    right value for the REFSEL field in the ADCx_CFG register is "01", leading
    to 0x800 as register mask. See section 8.2.6.4 in the reference manual[1].
    
    [1] http://www.nxp.com/docs/en/reference-manual/VFXXXRM.pdf
    
    Fixes: a775427 ("iio:adc:imx: add Freescale Vybrid vf610 adc driver")
    Signed-off-by: Stefan-Gabriel Mirea <stefan-gabriel.mirea@nxp.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stefan-Gabriel Mirea authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    eda1b3d View commit details
    Browse the repository at this point in the history
  34. pnfs/blocklayout: require 64-bit sector_t

    commit 8a9d6e9 upstream.
    
    The blocklayout code does not compile cleanly for a 32-bit sector_t,
    and also has no reliable checks for devices sizes, which makes it
    unsafe to use with a kernel that doesn't support large block devices.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: 5c83746 ("pnfs/blocklayout: in-kernel GETDEVICEINFO XDR parsing")
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Christoph Hellwig authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    a68978b View commit details
    Browse the repository at this point in the history
  35. pinctrl: sunxi: add a missing function of A10/A20 pinctrl driver

    commit d81ece7 upstream.
    
    The PH16 pin has a function with mux id 0x5, which is the DET pin of the
    "sim" (smart card reader) IP block.
    
    This function is missing in old versions of A10/A20 SoCs' datasheets and
    user manuals, so it's also missing in the old drivers. The newest A10
    Datasheet V1.70 and A20 Datasheet V1.41 contain this pin function, and
    it's discovered during implementing R40 pinctrl driver.
    
    Add it to the driver. As we now merged A20 pinctrl driver to the A10
    one, we need to only fix the A10 driver now.
    
    Fixes: f2821b1 ("pinctrl: sunxi: Move Allwinner A10 pinctrl
    driver to a driver of its own")
    
    Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
    Reviewed-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Icenowy authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    7b6fff6 View commit details
    Browse the repository at this point in the history
  36. pinctrl: intel: merrifield: Correct UART pin lists

    commit 5d99613 upstream.
    
    UART pin lists consist GPIO numbers which is simply wrong.
    Replace it by pin numbers.
    
    Fixes: 4e80c8f ("pinctrl: intel: Add Intel Merrifield pin controller support")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    andy-shev authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    877fe62 View commit details
    Browse the repository at this point in the history
  37. pinctrl: uniphier: fix WARN_ON() of pingroups dump on LD11

    commit 9592bc2 upstream.
    
    The pingroups dump of debugfs hits WARN_ON() in pinctrl_groups_show().
    Filling non-existing ports with '-1' turned out a bad idea.
    
    Fixes: 70f2f9c ("pinctrl: uniphier: add UniPhier PH1-LD11 pinctrl driver")
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    masahir0y authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    f642d29 View commit details
    Browse the repository at this point in the history
  38. pinctrl: uniphier: fix WARN_ON() of pingroups dump on LD20

    commit 1bd303d upstream.
    
    The pingroups dump of debugfs hits WARN_ON() in pinctrl_groups_show().
    Filling non-existing ports with '-1' turned out a bad idea.
    
    Fixes: 336306e ("pinctrl: uniphier: add UniPhier PH1-LD20 pinctrl driver")
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    masahir0y authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    8495ab6 View commit details
    Browse the repository at this point in the history
  39. pinctrl: samsung: Remove bogus irq_[un]mask from resource management

    commit 3fa53ec upstream.
    
    The irq chip callbacks irq_request/release_resources() have absolutely no
    business with masking and unmasking the irq.
    
    The core code unmasks the interrupt after complete setup and masks it
    before invoking irq_release_resources().
    
    The unmask is actually harmful as it happens before the interrupt is
    completely initialized in __setup_irq().
    
    Remove it.
    
    Fixes: f6a8249 ("pinctrl: exynos: Lock GPIOs as interrupts when used as EINTs")
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Cc: Kukjin Kim <kgene@kernel.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-samsung-soc@vger.kernel.org
    Cc: linux-gpio@vger.kernel.org
    Acked-by: Tomasz Figa <tomasz.figa@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    KAGA-KOKO authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    8cbc0b4 View commit details
    Browse the repository at this point in the history
  40. pinctrl: meson-gxbb: Add missing GPIODV_18 pin entry

    commit 34e6180 upstream.
    
    GPIODV_18 entry was missing in the original driver push.
    
    Fixes: 468c234 ("pinctrl: amlogic: Add support for Amlogic Meson GXBB SoC")
    Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
    Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    superna9999 authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    5e5a510 View commit details
    Browse the repository at this point in the history
  41. MIPS: DEC: Fix an int-handler.S CPU_DADDI_WORKAROUNDS regression

    commit 68fe556 upstream.
    
    Fix a commit 3021773 ("MIPS: DEC: Avoid la pseudo-instruction in
    delay slots") regression and remove assembly errors:
    
    arch/mips/dec/int-handler.S: Assembler messages:
    arch/mips/dec/int-handler.S:162: Error: Macro used $at after ".set noat"
    arch/mips/dec/int-handler.S:163: Error: Macro used $at after ".set noat"
    arch/mips/dec/int-handler.S:229: Error: Macro used $at after ".set noat"
    arch/mips/dec/int-handler.S:230: Error: Macro used $at after ".set noat"
    
    triggering with with the CPU_DADDI_WORKAROUNDS option set and the DADDIU
    instruction.  This is because with that option in place the instruction
    becomes a macro, which expands to an LI/DADDU (or actually ADDIU/DADDU)
    sequence that uses $at as a temporary register.
    
    With CPU_DADDI_WORKAROUNDS we only support `-msym32' compilation though,
    and this is already enforced in arch/mips/Makefile, so choose the 32-bit
    expansion variant for the supported configurations and then replace the
    64-bit variant with #error just in case.
    
    Fixes: 3021773 ("MIPS: DEC: Avoid la pseudo-instruction in delay slots")
    Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/16893/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Maciej W. Rozycki authored and gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    eea1ec0 View commit details
    Browse the repository at this point in the history
  42. Linux 4.9.44

    gregkh committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    a97a16f View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2017

  1. netfilter: nf_ct_ext: fix possible panic after nf_ct_extend_unregister

    commit 9c3f379 upstream.
    
    If one cpu is doing nf_ct_extend_unregister while another cpu is doing
    __nf_ct_ext_add_length, then we may hit BUG_ON(t == NULL). Moreover,
    there's no synchronize_rcu invocation after set nf_ct_ext_types[id] to
    NULL, so it's possible that we may access invalid pointer.
    
    But actually, most of the ct extends are built-in, so the problem listed
    above will not happen. However, there are two exceptions: NF_CT_EXT_NAT
    and NF_CT_EXT_SYNPROXY.
    
    For _EXT_NAT, the panic will not happen, since adding the nat extend and
    unregistering the nat extend are located in the same file(nf_nat_core.c),
    this means that after the nat module is removed, we cannot add the nat
    extend too.
    
    For _EXT_SYNPROXY, synproxy extend may be added by init_conntrack, while
    synproxy extend unregister will be done by synproxy_core_exit. So after
    nf_synproxy_core.ko is removed, we may still try to add the synproxy
    extend, then kernel panic may happen.
    
    I know it's very hard to reproduce this issue, but I can play a tricky
    game to make it happen very easily :)
    
    Step 1. Enable SYNPROXY for tcp dport 1234 at FORWARD hook:
      # iptables -I FORWARD -p tcp --dport 1234 -j SYNPROXY
    Step 2. Queue the syn packet to the userspace at raw table OUTPUT hook.
            Also note, in the userspace we only add a 20s' delay, then
            reinject the syn packet to the kernel:
      # iptables -t raw -I OUTPUT -p tcp --syn -j NFQUEUE --queue-num 1
    Step 3. Using "nc 2.2.2.2 1234" to connect the server.
    Step 4. Now remove the nf_synproxy_core.ko quickly:
      # iptables -F FORWARD
      # rmmod ipt_SYNPROXY
      # rmmod nf_synproxy_core
    Step 5. After 20s' delay, the syn packet is reinjected to the kernel.
    
    Now you will see the panic like this:
      kernel BUG at net/netfilter/nf_conntrack_extend.c:91!
      Call Trace:
       ? __nf_ct_ext_add_length+0x53/0x3c0 [nf_conntrack]
       init_conntrack+0x12b/0x600 [nf_conntrack]
       nf_conntrack_in+0x4cc/0x580 [nf_conntrack]
       ipv4_conntrack_local+0x48/0x50 [nf_conntrack_ipv4]
       nf_reinject+0x104/0x270
       nfqnl_recv_verdict+0x3e1/0x5f9 [nfnetlink_queue]
       ? nfqnl_recv_verdict+0x5/0x5f9 [nfnetlink_queue]
       ? nla_parse+0xa0/0x100
       nfnetlink_rcv_msg+0x175/0x6a9 [nfnetlink]
       [...]
    
    One possible solution is to make NF_CT_EXT_SYNPROXY extend built-in, i.e.
    introduce nf_conntrack_synproxy.c and only do ct extend register and
    unregister in it, similar to nf_conntrack_timeout.c.
    
    But having such a obscure restriction of nf_ct_extend_unregister is not a
    good idea, so we should invoke synchronize_rcu after set nf_ct_ext_types
    to NULL, and check the NULL pointer when do __nf_ct_ext_add_length. Then
    it will be easier if we add new ct extend in the future.
    
    Last, we use kfree_rcu to free nf_ct_ext, so rcu_barrier() is unnecessary
    anymore, remove it too.
    
    Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
    Acked-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Cc: Stefan Bader <stefan.bader@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Liping Zhang authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    5170d21 View commit details
    Browse the repository at this point in the history
  2. audit: Fix use after free in audit_remove_watch_rule()

    commit d76036a upstream.
    
    audit_remove_watch_rule() drops watch's reference to parent but then
    continues to work with it. That is not safe as parent can get freed once
    we drop our reference. The following is a trivial reproducer:
    
    mount -o loop image /mnt
    touch /mnt/file
    auditctl -w /mnt/file -p wax
    umount /mnt
    auditctl -D
    <crash in fsnotify_destroy_mark()>
    
    Grab our own reference in audit_remove_watch_rule() earlier to make sure
    mark does not get freed under us.
    
    Reported-by: Tony Jones <tonyj@suse.de>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Tested-by: Tony Jones <tonyj@suse.de>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jankara authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    adcfbb2 View commit details
    Browse the repository at this point in the history
  3. parisc: pci memory bar assignment fails with 64bit kernels on dino/cujo

    commit 4098116 upstream.
    
    For 64bit kernels the lmmio_space_offset of the host bridge window
    isn't set correctly on systems with dino/cujo PCI host bridges.
    This leads to not assigned memory bars and failing drivers, which
    need to use these bars.
    
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Acked-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tsbogend authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    93f5a03 View commit details
    Browse the repository at this point in the history
  4. crypto: ixp4xx - Fix error handling path in 'aead_perform()'

    commit 2838957 upstream.
    
    In commit 0f987e2, the source processing has been moved in front of
    the destination processing, but the error handling path has not been
    modified accordingly.
    Free resources in the correct order to avoid some leaks.
    
    Fixes: 0f987e2 ("crypto: ixp4xx - Fix false lastlen uninitialised warning")
    Reported-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    herbertx authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    24e7f54 View commit details
    Browse the repository at this point in the history
  5. crypto: x86/sha1 - Fix reads beyond the number of blocks passed

    commit 8861249 upstream.
    
    It was reported that the sha1 AVX2 function(sha1_transform_avx2) is
    reading ahead beyond its intended data, and causing a crash if the next
    block is beyond page boundary:
    http://marc.info/?l=linux-crypto-vger&m=149373371023377
    
    This patch makes sure that there is no overflow for any buffer length.
    
    It passes the tests written by Jan Stancek that revealed this problem:
    https://github.com/jstancek/sha1-avx2-crash
    
    I have re-enabled sha1-avx2 by reverting commit
    b82ce24
    
    Fixes: b82ce24 ("crypto: sha1-ssse3 - Disable avx2")
    Originally-by: Ilya Albrekht <ilya.albrekht@intel.com>
    Tested-by: Jan Stancek <jstancek@redhat.com>
    Signed-off-by: Megha Dey <megha.dey@linux.intel.com>
    Reported-by: Jan Stancek <jstancek@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    megha.dey@linux.intel.com authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    c3e8a12 View commit details
    Browse the repository at this point in the history
  6. Input: elan_i2c - add ELAN0608 to the ACPI table

    commit 1874064 upstream.
    
    Similar to commit 722c5ac ("Input: elan_i2c - add ELAN0605 to the
    ACPI table"), ELAN0608 should be handled by elan_i2c.
    
    This touchpad can be found in Lenovo ideapad 320-14IKB.
    
    BugLink: https://bugs.launchpad.net/bugs/1708852
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    khfeng authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    5dd141e View commit details
    Browse the repository at this point in the history
  7. Input: elan_i2c - Add antoher Lenovo ACPI ID for upcoming Lenovo NB

    commit 7698869 upstream.
    
    Add 2 new IDs (ELAN0609 and ELAN060B) to the list of ACPI IDs that should
    be handled by the driver.
    
    Signed-off-by: KT Liao <kt.liao@emc.com.tw>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    KT Liao authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    3f72921 View commit details
    Browse the repository at this point in the history
  8. ALSA: seq: 2nd attempt at fixing race creating a queue

    commit 7e1d90f upstream.
    
    commit 4842e98 ("ALSA: seq: Fix race at
    creating a queue") attempted to fix a race reported by syzkaller. That
    fix has been described as follows:
    
    "
    When a sequencer queue is created in snd_seq_queue_alloc(),it adds the
    new queue element to the public list before referencing it.  Thus the
    queue might be deleted before the call of snd_seq_queue_use(), and it
    results in the use-after-free error, as spotted by syzkaller.
    
    The fix is to reference the queue object at the right time.
    "
    
    Even with that fix in place, syzkaller reported a use-after-free error.
    It specifically pointed to the last instruction "return q->queue" in
    snd_seq_queue_alloc(). The pointer q is being used after kfree() has
    been called on it.
    
    It turned out that there is still a small window where a race can
    happen. The window opens at
    snd_seq_ioctl_create_queue()->snd_seq_queue_alloc()->queue_list_add()
    and closes at
    snd_seq_ioctl_create_queue()->queueptr()->snd_use_lock_use(). Between
    these two calls, a different thread could delete the queue and possibly
    re-create a different queue in the same location in queue_list.
    
    This change prevents this situation by calling snd_use_lock_use() from
    snd_seq_queue_alloc() prior to calling queue_list_add(). It is then the
    caller's responsibility to call snd_use_lock_free(&q->use_lock).
    
    Fixes: 4842e98 ("ALSA: seq: Fix race at creating a queue")
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Daniel Mentz <danielmentz@google.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    danielmentzgoogle authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    bafb25c View commit details
    Browse the repository at this point in the history
  9. ALSA: usb-audio: Apply sample rate quirk to Sennheiser headset

    commit a8e800f upstream.
    
    A Senheisser headset requires the typical sample-rate quirk for
    avoiding spurious errors from inquiring the current sample rate like:
     usb 1-1: 2:1: cannot get freq at ep 0x4
     usb 1-1: 3:1: cannot get freq at ep 0x83
    
    The USB ID 1395:740a has to be added to the entries in
    snd_usb_get_sample_rate_quirk().
    
    Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1052580
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tiwai authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    f39f086 View commit details
    Browse the repository at this point in the history
  10. ALSA: usb-audio: Add mute TLV for playback volumes on C-Media devices

    commit 0f174b3 upstream.
    
    C-Media devices (at least some models) mute the playback stream when
    volumes are set to the minimum value.  But this isn't informed via TLV
    and the user-space, typically PulseAudio, gets confused as if it's
    still played in a low volume.
    
    This patch adds the new flag, min_mute, to struct usb_mixer_elem_info
    for indicating that the mixer element is with the minimum-mute volume.
    This flag is set for known C-Media devices in
    snd_usb_mixer_fu_apply_quirk() in turn.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=196669
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tiwai authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    d3e6e59 View commit details
    Browse the repository at this point in the history
  11. mm: discard memblock data later

    commit 3010f87 upstream.
    
    There is existing use after free bug when deferred struct pages are
    enabled:
    
    The memblock_add() allocates memory for the memory array if more than
    128 entries are needed.  See comment in e820__memblock_setup():
    
      * The bootstrap memblock region count maximum is 128 entries
      * (INIT_MEMBLOCK_REGIONS), but EFI might pass us more E820 entries
      * than that - so allow memblock resizing.
    
    This memblock memory is freed here:
            free_low_memory_core_early()
    
    We access the freed memblock.memory later in boot when deferred pages
    are initialized in this path:
    
            deferred_init_memmap()
                    for_each_mem_pfn_range()
                      __next_mem_pfn_range()
                        type = &memblock.memory;
    
    One possible explanation for why this use-after-free hasn't been hit
    before is that the limit of INIT_MEMBLOCK_REGIONS has never been
    exceeded at least on systems where deferred struct pages were enabled.
    
    Tested by reducing INIT_MEMBLOCK_REGIONS down to 4 from the current 128,
    and verifying in qemu that this code is getting excuted and that the
    freed pages are sane.
    
    Link: http://lkml.kernel.org/r/1502485554-318703-2-git-send-email-pasha.tatashin@oracle.com
    Fixes: 7e18adb ("mm: meminit: initialise remaining struct pages in parallel with kswapd")
    Signed-off-by: Pavel Tatashin <pasha.tatashin@oracle.com>
    Reviewed-by: Steven Sistare <steven.sistare@oracle.com>
    Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
    Reviewed-by: Bob Picco <bob.picco@oracle.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Pavel Tatashin authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    87395ee View commit details
    Browse the repository at this point in the history
  12. mm: fix double mmap_sem unlock on MMF_UNSTABLE enforced SIGBUS

    commit 5b53a6e upstream.
    
    Tetsuo Handa has noticed that MMF_UNSTABLE SIGBUS path in
    handle_mm_fault causes a lockdep splat
    
      Out of memory: Kill process 1056 (a.out) score 603 or sacrifice child
      Killed process 1056 (a.out) total-vm:4268108kB, anon-rss:2246048kB, file-rss:0kB, shmem-rss:0kB
      a.out (1169) used greatest stack depth: 11664 bytes left
      DEBUG_LOCKS_WARN_ON(depth <= 0)
      ------------[ cut here ]------------
      WARNING: CPU: 6 PID: 1339 at kernel/locking/lockdep.c:3617 lock_release+0x172/0x1e0
      CPU: 6 PID: 1339 Comm: a.out Not tainted 4.13.0-rc3-next-20170803+ torvalds#142
      Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/02/2015
      RIP: 0010:lock_release+0x172/0x1e0
      Call Trace:
         up_read+0x1a/0x40
         __do_page_fault+0x28e/0x4c0
         do_page_fault+0x30/0x80
         page_fault+0x28/0x30
    
    The reason is that the page fault path might have dropped the mmap_sem
    and returned with VM_FAULT_RETRY.  MMF_UNSTABLE check however rewrites
    the error path to VM_FAULT_SIGBUS and we always expect mmap_sem taken in
    that path.  Fix this by taking mmap_sem when VM_FAULT_RETRY is held in
    the MMF_UNSTABLE path.
    
    We cannot simply add VM_FAULT_SIGBUS to the existing error code because
    all arch specific page fault handlers and g-u-p would have to learn a
    new error code combination.
    
    Link: http://lkml.kernel.org/r/20170807113839.16695-2-mhocko@kernel.org
    Fixes: 3f70dc3 ("mm: make sure that kthreads will not refault oom reaped memory")
    Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Acked-by: David Rientjes <rientjes@google.com>
    Cc: Andrea Argangeli <andrea@kernel.org>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Wenwei Tao <wenwei.tww@alibaba-inc.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Michal Hocko authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    59ee25d View commit details
    Browse the repository at this point in the history
  13. mm/mempolicy: fix use after free when calling get_mempolicy

    commit 73223e4 upstream.
    
    I hit a use after free issue when executing trinity and repoduced it
    with KASAN enabled.  The related call trace is as follows.
    
      BUG: KASan: use after free in SyS_get_mempolicy+0x3c8/0x960 at addr ffff8801f582d766
      Read of size 2 by task syz-executor1/798
    
      INFO: Allocated in mpol_new.part.2+0x74/0x160 age=3 cpu=1 pid=799
         __slab_alloc+0x768/0x970
         kmem_cache_alloc+0x2e7/0x450
         mpol_new.part.2+0x74/0x160
         mpol_new+0x66/0x80
         SyS_mbind+0x267/0x9f0
         system_call_fastpath+0x16/0x1b
      INFO: Freed in __mpol_put+0x2b/0x40 age=4 cpu=1 pid=799
         __slab_free+0x495/0x8e0
         kmem_cache_free+0x2f3/0x4c0
         __mpol_put+0x2b/0x40
         SyS_mbind+0x383/0x9f0
         system_call_fastpath+0x16/0x1b
      INFO: Slab 0xffffea0009cb8dc0 objects=23 used=8 fp=0xffff8801f582de40 flags=0x200000000004080
      INFO: Object 0xffff8801f582d760 @offset=5984 fp=0xffff8801f582d600
    
      Bytes b4 ffff8801f582d750: ae 01 ff ff 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a  ........ZZZZZZZZ
      Object ffff8801f582d760: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
      Object ffff8801f582d770: 6b 6b 6b 6b 6b 6b 6b a5                          kkkkkkk.
      Redzone ffff8801f582d778: bb bb bb bb bb bb bb bb                          ........
      Padding ffff8801f582d8b8: 5a 5a 5a 5a 5a 5a 5a 5a                          ZZZZZZZZ
      Memory state around the buggy address:
      ffff8801f582d600: fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc fc
      ffff8801f582d680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      >ffff8801f582d700: fc fc fc fc fc fc fc fc fc fc fc fc fb fb fb fc
    
    !shared memory policy is not protected against parallel removal by other
    thread which is normally protected by the mmap_sem.  do_get_mempolicy,
    however, drops the lock midway while we can still access it later.
    
    Early premature up_read is a historical artifact from times when
    put_user was called in this path see https://lwn.net/Articles/124754/
    but that is gone since 8bccd85 ("[PATCH] Implement sys_* do_*
    layering in the memory policy layer.").  but when we have the the
    current mempolicy ref count model.  The issue was introduced
    accordingly.
    
    Fix the issue by removing the premature release.
    
    Link: http://lkml.kernel.org/r/1502950924-27521-1-git-send-email-zhongjiang@huawei.com
    Signed-off-by: zhong jiang <zhongjiang@huawei.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    xiongzhongjiang authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    91105f2 View commit details
    Browse the repository at this point in the history
  14. mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes

    commit c715b72 upstream.
    
    Moving the x86_64 and arm64 PIE base from 0x555555554000 to 0x000100000000
    broke AddressSanitizer.  This is a partial revert of:
    
      eab0953 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE")
      0244599 ("arm64: move ELF_ET_DYN_BASE to 4GB / 4MB")
    
    The AddressSanitizer tool has hard-coded expectations about where
    executable mappings are loaded.
    
    The motivation for changing the PIE base in the above commits was to
    avoid the Stack-Clash CVEs that allowed executable mappings to get too
    close to heap and stack.  This was mainly a problem on 32-bit, but the
    64-bit bases were moved too, in an effort to proactively protect those
    systems (proofs of concept do exist that show 64-bit collisions, but
    other recent changes to fix stack accounting and setuid behaviors will
    minimize the impact).
    
    The new 32-bit PIE base is fine for ASan (since it matches the ET_EXEC
    base), so only the 64-bit PIE base needs to be reverted to let x86 and
    arm64 ASan binaries run again.  Future changes to the 64-bit PIE base on
    these architectures can be made optional once a more dynamic method for
    dealing with AddressSanitizer is found.  (e.g.  always loading PIE into
    the mmap region for marked binaries.)
    
    Link: http://lkml.kernel.org/r/20170807201542.GA21271@beast
    Fixes: eab0953 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE")
    Fixes: 0244599 ("arm64: move ELF_ET_DYN_BASE to 4GB / 4MB")
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Reported-by: Kostya Serebryany <kcc@google.com>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    kees authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    1f2347a View commit details
    Browse the repository at this point in the history
  15. xen: fix bio vec merging

    commit 462cdac upstream.
    
    The current test for bio vec merging is not fully accurate and can be
    tricked into merging bios when certain grant combinations are used.
    The result of these malicious bio merges is a bio that extends past
    the memory page used by any of the originating bios.
    
    Take into account the following scenario, where a guest creates two
    grant references that point to the same mfn, ie: grant 1 -> mfn A,
    grant 2 -> mfn A.
    
    These references are then used in a PV block request, and mapped by
    the backend domain, thus obtaining two different pfns that point to
    the same mfn, pfn B -> mfn A, pfn C -> mfn A.
    
    If those grants happen to be used in two consecutive sectors of a disk
    IO operation becoming two different bios in the backend domain, the
    checks in xen_biovec_phys_mergeable will succeed, because bfn1 == bfn2
    (they both point to the same mfn). However due to the bio merging,
    the backend domain will end up with a bio that expands past mfn A into
    mfn A + 1.
    
    Fix this by making sure the check in xen_biovec_phys_mergeable takes
    into account the offset and the length of the bio, this basically
    replicates whats done in __BIOVEC_PHYS_MERGEABLE using mfns (bus
    addresses). While there also remove the usage of
    __BIOVEC_PHYS_MERGEABLE, since that's already checked by the callers
    of xen_biovec_phys_mergeable.
    
    Reported-by: "Jan H. Schönherr" <jschoenh@amazon.de>
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    royger authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    6c7f375 View commit details
    Browse the repository at this point in the history
  16. blk-mq-pci: add a fallback when pci_irq_get_affinity returns NULL

    commit c005390 upstream.
    
    While pci_irq_get_affinity should never fail for SMP kernel that
    implement the affinity mapping, it will always return NULL in the
    UP case, so provide a fallback mapping of all queues to CPU 0 in
    that case.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Omar Sandoval <osandov@fb.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Christoph Hellwig authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    d8c20af View commit details
    Browse the repository at this point in the history
  17. powerpc: Fix VSX enabling/flushing to also test MSR_FP and MSR_VEC

    commit 5a69aec upstream.
    
    VSX uses a combination of the old vector registers, the old FP
    registers and new "second halves" of the FP registers.
    
    Thus when we need to see the VSX state in the thread struct
    (flush_vsx_to_thread()) or when we'll use the VSX in the kernel
    (enable_kernel_vsx()) we need to ensure they are all flushed into
    the thread struct if either of them is individually enabled.
    
    Unfortunately we only tested if the whole VSX was enabled, not if they
    were individually enabled.
    
    Fixes: 72cd7b4 ("powerpc: Uncomment and make enable_kernel_vsx() routine available")
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ozbenh authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    7672f11 View commit details
    Browse the repository at this point in the history
  18. xen-blkfront: use a right index when checking requests

    commit b15bd8c upstream.
    
    Since commit d05d7f4 ("Merge branch 'for-4.8/core' of
    git://git.kernel.dk/linux-block") and 3fc9d69 ("Merge branch
    'for-4.8/drivers' of git://git.kernel.dk/linux-block"), blkfront_resume()
    has been using an index for iterating ring_info to check request when
    iterating blk_shadow in an inner loop. This seems to have been
    accidentally introduced during the massive rewrite of the block layer
    macros in the commits.
    
    This may cause crash like this:
    
    [11798.057074] BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
    [11798.058832] IP: [<ffffffff814411fa>] blkfront_resume+0x10a/0x610
    ....
    [11798.061063] Call Trace:
    [11798.061063]  [<ffffffff8139ce93>] xenbus_dev_resume+0x53/0x140
    [11798.061063]  [<ffffffff8139ce40>] ? xenbus_dev_probe+0x150/0x150
    [11798.061063]  [<ffffffff813f359e>] dpm_run_callback+0x3e/0x110
    [11798.061063]  [<ffffffff813f3a08>] device_resume+0x88/0x190
    [11798.061063]  [<ffffffff813f4cc0>] dpm_resume+0x100/0x2d0
    [11798.061063]  [<ffffffff813f5221>] dpm_resume_end+0x11/0x20
    [11798.061063]  [<ffffffff813950a8>] do_suspend+0xe8/0x1a0
    [11798.061063]  [<ffffffff813954bd>] shutdown_handler+0xfd/0x130
    [11798.061063]  [<ffffffff8139aba0>] ? split+0x110/0x110
    [11798.061063]  [<ffffffff8139ac26>] xenwatch_thread+0x86/0x120
    [11798.061063]  [<ffffffff810b4570>] ? prepare_to_wait_event+0x110/0x110
    [11798.061063]  [<ffffffff8108fe57>] kthread+0xd7/0xf0
    [11798.061063]  [<ffffffff811da811>] ? kfree+0x121/0x170
    [11798.061063]  [<ffffffff8108fd80>] ? kthread_park+0x60/0x60
    [11798.061063]  [<ffffffff810863b0>] ?  call_usermodehelper_exec_work+0xb0/0xb0
    [11798.061063]  [<ffffffff810864ea>] ?  call_usermodehelper_exec_async+0x13a/0x140
    [11798.061063]  [<ffffffff81534a45>] ret_from_fork+0x25/0x30
    
    Use the right index in the inner loop.
    
    Fixes: d05d7f4 ("Merge branch 'for-4.8/core' of git://git.kernel.dk/linux-block")
    Fixes: 3fc9d69 ("Merge branch 'for-4.8/drivers' of git://git.kernel.dk/linux-block")
    Signed-off-by: Munehisa Kamata <kamatam@amazon.com>
    Reviewed-by: Thomas Friebel <friebelt@amazon.de>
    Reviewed-by: Eduardo Valentin <eduval@amazon.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Reviewed-by: Roger Pau Monne <roger.pau@citrix.com>
    Cc: xen-devel@lists.xenproject.org
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    kamatam9 authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    1581d70 View commit details
    Browse the repository at this point in the history
  19. x86/asm/64: Clear AC on NMI entries

    commit e93c173 upstream.
    
    This closes a hole in our SMAP implementation.
    
    This patch comes from grsecurity. Good catch!
    
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/314cc9f294e8f14ed85485727556ad4f15bb1659.1502159503.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    amluto authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    10d5bf2 View commit details
    Browse the repository at this point in the history
  20. irqchip/atmel-aic: Fix unbalanced of_node_put() in aic_common_irq_fix…

    …up()
    
    commit 469bcef upstream.
    
    aic_common_irq_fixup() is calling twice of_node_put() on the same node
    thus leading to an unbalanced refcount on the root node.
    
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Reported-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Fixes: b2f579b ("irqchip: atmel-aic: Add irq fixup infrastructure")
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Boris Brezillon authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    665d200 View commit details
    Browse the repository at this point in the history
  21. irqchip/atmel-aic: Fix unbalanced refcount in aic_common_rtc_irq_fixup()

    commit 277867a upstream.
    
    of_find_compatible_node() is calling of_node_put() on its first argument
    thus leading to an unbalanced of_node_get/put() issue if the node has not
    been retained before that.
    
    Instead of passing the root node, pass NULL, which does exactly the same:
    iterate over all DT nodes, starting from the root node.
    
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Reported-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Fixes: 3d61467 ("irqchip: atmel-aic: Implement RTC irq fixup")
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Boris Brezillon authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    4691f1c View commit details
    Browse the repository at this point in the history
  22. genirq: Restore trigger settings in irq_modify_status()

    commit e8f2418 upstream.
    
    irq_modify_status starts by clearing the trigger settings from
    irq_data before applying the new settings, but doesn't restore them,
    leaving them to IRQ_TYPE_NONE.
    
    That's pretty confusing to the potential request_irq() that could
    follow. Instead, snapshot the settings before clearing them, and restore
    them if the irq_modify_status() invocation was not changing the trigger.
    
    Fixes: 1e2a7d7 ("irqdomain: Don't set type when mapping an IRQ")
    Reported-and-tested-by: jeffy <jeffy.chen@rock-chips.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Jon Hunter <jonathanh@nvidia.com>
    Link: http://lkml.kernel.org/r/20170818095345.12378-1-marc.zyngier@arm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Marc Zyngier authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    762ac49 View commit details
    Browse the repository at this point in the history
  23. genirq/ipi: Fixup checks against nr_cpu_ids

    commit 8fbbe2d upstream.
    
    Valid CPU ids are [0, nr_cpu_ids-1] inclusive.
    
    Fixes: 3b8e29a ("genirq: Implement ipi_send_mask/single()")
    Fixes: f9bce79 ("genirq: Add a new function to get IPI reverse mapping")
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20170819095751.GB27864@avx2
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Alexey Dobriyan authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    f9497d5 View commit details
    Browse the repository at this point in the history
  24. Sanitize 'move_pages()' permission checks

    commit 197e7e5 upstream.
    
    The 'move_paghes()' system call was introduced long long ago with the
    same permission checks as for sending a signal (except using
    CAP_SYS_NICE instead of CAP_SYS_KILL for the overriding capability).
    
    That turns out to not be a great choice - while the system call really
    only moves physical page allocations around (and you need other
    capabilities to do a lot of it), you can check the return value to map
    out some the virtual address choices and defeat ASLR of a binary that
    still shares your uid.
    
    So change the access checks to the more common 'ptrace_may_access()'
    model instead.
    
    This tightens the access checks for the uid, and also effectively
    changes the CAP_SYS_NICE check to CAP_SYS_PTRACE, but it's unlikely that
    anybody really _uses_ this legacy system call any more (we hav ebetter
    NUMA placement models these days), so I expect nobody to notice.
    
    Famous last words.
    
    Reported-by: Otto Ebeling <otto.ebeling@iki.fi>
    Acked-by: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    torvalds authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    61332dc View commit details
    Browse the repository at this point in the history
  25. pids: make task_tgid_nr_ns() safe

    commit dd1c1f2 upstream.
    
    This was reported many times, and this was even mentioned in commit
    52ee2df ("pids: refactor vnr/nr_ns helpers to make them safe") but
    somehow nobody bothered to fix the obvious problem: task_tgid_nr_ns() is
    not safe because task->group_leader points to nowhere after the exiting
    task passes exit_notify(), rcu_read_lock() can not help.
    
    We really need to change __unhash_process() to nullify group_leader,
    parent, and real_parent, but this needs some cleanups.  Until then we
    can turn task_tgid_nr_ns() into another user of __task_pid_nr_ns() and
    fix the problem.
    
    Reported-by: Troy Kensinger <tkensinger@google.com>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    oleg-nesterov authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    322cd32 View commit details
    Browse the repository at this point in the history
  26. usb: optimize acpi companion search for usb port devices

    commit ed18c5f upstream.
    
    This optimization significantly reduces xhci driver load time.
    
    In ACPI tables the acpi companion port devices are children of
    the hub device. The port devices are identified by their port number
    returned by the ACPI _ADR method.
    _ADR 0 is reserved for the root hub device.
    
    The current implementation to find a acpi companion port device
    loops through all acpi port devices under that parent hub, evaluating
    their _ADR method each time a new port device is added.
    
    for a xHC controller with 25 ports under its roothub it
    will end up invoking ACPI bytecode 625 times before all ports
    are ready, making it really slow.
    
    The _ADR values are already read and cached earler. So instead of
    running the bytecode again we can check the cached _ADR value first,
    and then fall back to the old way.
    
    As one of the more significant changes, the xhci load time on
    Intel kabylake reduced by 70%, (28ms) from
    initcall xhci_pci_init+0x0/0x49 returned 0 after 39537 usecs
    to
    initcall xhci_pci_init+0x0/0x49 returned 0 after 11270 usecs
    
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    matnyman authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    edfe57b View commit details
    Browse the repository at this point in the history
  27. usb: qmi_wwan: add D-Link DWM-222 device ID

    commit bed9ff1 upstream.
    
    Signed-off-by: Hector Martin <marcan@marcan.st>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    marcan authored and gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    083d423 View commit details
    Browse the repository at this point in the history
  28. Linux 4.9.45

    gregkh committed Aug 25, 2017
    Configuration menu
    Copy the full SHA
    4b904b2 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2017

  1. config: add upboard defconfig

    Signed-off-by: Javier Arteaga <javier@emutex.com>
    jbeta authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    0bebcbb View commit details
    Browse the repository at this point in the history
  2. drm/i915: Add headers for non-HDAudio HDMI interface

    Add header files for interface available on Baytrail and CherryTrail
    
    Initial code was downloaded from https://github.com/01org/baytrailaudio/
    ...and had the changes to .config stripped and the revert on sound/init.c
    done by David Henningson
    
    Clean-up, port to 4.5 and intel-drm by Pierre Bossart
    CherryTrail support by Jerome Anand
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    plbossart authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    427069b View commit details
    Browse the repository at this point in the history
  3. drm/i915: changes for non-HDAudio HDMI interface

    Changes to existing code for interface available on Baytrail and
    CherryTrail
    
    This driver was downloaded from https://github.com/01org/baytrailaudio/
    
    ...and had the changes to .config stripped and the revert on sound/init.c
    
    Also squashed change from Toyo Abe to fix typos and underrun issues
    To enable interrupt, IER, IIR, and IMR must be configured appropriately.
    IER setting for hdmi_audio was missing.
    This fixes the following warning in dmesg.
    [  302.369965] had: Driver detected 2 missed buffer done interrupt(s)!!!!
    
    includes fix to handle display resolution change and changes to
    account for tmds clock set in vlv/chv_crtc_compute_clock
    
    Cleanup, correction for PIPE_A/PIPE_B inversions,
    port to 4.5 and intel-drm by Pierre Bossart
    CherryTrail support by Jerome Anand
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Toyo Abe <toyo.abe@gmail.com>
    plbossart authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    f1213bf View commit details
    Browse the repository at this point in the history
  4. drm/i915: power-related changes non-HDAudio HDMI interface

    PM and RPM changes for interface available on Baytrail and CherryTrail
    
    This driver was downloaded from https://github.com/01org/baytrailaudio/
    
    ...and had the changes to .config stripped and the revert on sound/init.c
    
    Clean-up, port to 4.4 and intel-drm by Pierre Bossart
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    plbossart authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    ee1b908 View commit details
    Browse the repository at this point in the history
  5. drm/i915: Add API code for non-HDAudio HDMI interface

    Add API code for interface available on Baytrail and CherryTrail
    
    Initial code was downloaded from https://github.com/01org/baytrailaudio/
    ...and had the changes to .config stripped and the revert on sound/init.c
    done by David Henningson
    
    Clean-up, port to 4.5 and intel-drm by Pierre Bossart
    CherryTrail support by Jerome Anand
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    plbossart authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    470804c View commit details
    Browse the repository at this point in the history
  6. drm/i915: enable non-HDAudio HDMI interface Makefile

    Makefile for all previous patches
    
    This driver was downloaded from https://github.com/01org/baytrailaudio/
    
    ...and had the changes to .config stripped and the revert on sound/init.c
    
    clean-up, port to 4.5 and intel-drm by Pierre Bossart
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    plbossart authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    da293fb View commit details
    Browse the repository at this point in the history
  7. ALSA: Intel: Atom: add Atom non-HDAudio HDMI interface

    Add support interface available on Baytrail and CherryTrail
    
    Initial code was downloaded from https://github.com/01org/baytrailaudio/
    ...and had the changes to .config stripped and the revert on sound/init.c
    and printk->pr_debug done by David Henningson
    
    Clean-up, port to 4.5 and intel-drm by Pierre Bossart
    CherryTrail support by Jerome Anand
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    plbossart authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    3828172 View commit details
    Browse the repository at this point in the history
  8. add dependency on PM_RUNTIME

    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    plbossart authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    c9158c0 View commit details
    Browse the repository at this point in the history
  9. hdmi_audio: Improve position reporting

    Using a hw register to calculate sub-period position reports.
    
    This makes PulseAudio happier.
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    David Henningsson authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    3da3d23 View commit details
    Browse the repository at this point in the history
  10. hdmi_audio: Fixup some monitor

    I think this change was given to us, and they claimed it fixed an issue
    on some monitor brand. I'm not sure what this patch actually does.
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    David Henningsson authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    b69d9a0 View commit details
    Browse the repository at this point in the history
  11. hdmi_audio: Fix mishandling of AUD_HDMI_STATUS_v2 register.

    According to the datasheet, write one to clear these UNDERRUN flag bits.
    This fixes the following warning in dmesg.
    
    [15357.574902] had: Unable to clear UNDERRUN bits
    
    Signed-off-by: Toyo Abe <toyo.abe@gmail.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    toyoabe authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    1b48705 View commit details
    Browse the repository at this point in the history
  12. Create a platform device for hdmi audio driver and allocate full reso…

    …urces
    
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    jeromean authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    1288e5d View commit details
    Browse the repository at this point in the history
  13. hdmi_audio: fix GCC compilation issues with inline functions

    remove inlining to avoid errors reported by GCC 6
    plbossart authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    991f580 View commit details
    Browse the repository at this point in the history
  14. config: enable CHT HDMI audio on upboard_defconfig

    jbeta authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    ee248c6 View commit details
    Browse the repository at this point in the history
  15. regulator: fixed: add support for ACPI interface

    Add support to retrieve fixed voltage configure information through
    ACPI interface. This is needed for Intel Bay Trail devices, where a
    GPIO is used to control the USB vbus.
    
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    LuBaolu authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    ee4ed86 View commit details
    Browse the repository at this point in the history
  16. usb: mux: add generic code for dual role port mux

    Several Intel platforms implement USB dual role by having completely
    separate xHCI and dwc3 IPs in PCH or SOC silicons. These two IPs share
    a single USB port. There is another external port mux which controls
    where the data lines should go. While the USB controllers are part of
    the silicon, the port mux design are platform specific.
    
    This patch adds the generic code to handle such multiple roles of a
    usb port. It exports the necessary interfaces for other components to
    register or unregister a usb mux device, and to control its role.
    It registers the mux device with sysfs as well, so that users are able
    to control the port role from user space.
    
    Some other archs (e.g. Renesas R-Car gen2 SoCs) need an external mux to
    swap usb roles as well. This code could also be leveraged for those archs.
    
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Reviewed-by: Felipe Balbi <balbi@kernel.org>
    LuBaolu authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    0351b25 View commit details
    Browse the repository at this point in the history
  17. usb: mux: add driver for Intel gpio controlled port mux

    In some Intel platforms, a single usb port is shared between USB host
    and device controller. The shared port is under control of GPIO pins.
    
    This patch adds the support for USB GPIO controlled port mux.
    
    [baolu: removed .owner per platform_no_drv_owner.cocci]
    [baolu: extcon usage reviewed by Chanwoo Choi]
    Signed-off-by: David Cohen <david.a.cohen@linux.intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Reviewed-by: Felipe Balbi <balbi@kernel.org>
    Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
    LuBaolu authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    9a8151c View commit details
    Browse the repository at this point in the history
  18. usb: mux: add driver for Intel drcfg controlled port mux

    Several Intel PCHs and SOCs have an internal mux that is used to
    share one USB port between device controller and host controller.
    The mux is handled through the Dual Role Configuration Register.
    
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Wu Hao <hao.wu@intel.com>
    Reviewed-by: Felipe Balbi <balbi@kernel.org>
    LuBaolu authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    2fe798b View commit details
    Browse the repository at this point in the history
  19. mfd: intel_vuport: Add Intel virtual USB port MFD Driver

    Some Intel platforms have an USB port mux controlled by GPIOs.
    There's a single ACPI platform device that provides 1) USB ID
    extcon device; 2) USB vbus regulator device; and 3) USB port
    switch device. This MFD driver will split these 3 devices for
    their respective drivers.
    
    [baolu: removed .owner per platform_no_drv_owner.cocci]
    Suggested-by: David Cohen <david.a.cohen@linux.intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: Felipe Balbi <balbi@kernel.org>
    Acked-by: Lee Jones <lee.jones@linaro.org>
    LuBaolu authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    93f5681 View commit details
    Browse the repository at this point in the history
  20. usb: pci-quirks: add Intel USB drcfg mux device

    In some Intel platforms, a single usb port is shared between USB host
    and device controllers. The shared port is under control of a switch
    which is defined in the Intel vendor defined extended capability for
    xHCI.
    
    This patch adds the support to detect and create the platform device
    for the port mux switch.
    
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: Felipe Balbi <balbi@kernel.org>
    LuBaolu authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    b8b3339 View commit details
    Browse the repository at this point in the history
  21. MAINTAINERS: add maintainer entry for Intel USB dual role mux drivers

    Add a maintainer entry for Intel USB dual role mux drivers and
    add myself as a maintainer.
    
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    LuBaolu authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    ff276f3 View commit details
    Browse the repository at this point in the history
  22. config: add Intel USB Dual Role cfg reg support

    jbeta authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    2eb4652 View commit details
    Browse the repository at this point in the history
  23. i2c: designware-platdrv: add ACPI method query to get default bus speed

    Integrate the following patches by Dan to detect i2c speed from acpi method:
    
     - i2c: designware-platdrv: add ACPI method query to get default bus speed
    
       On some platforms, the I2C bus speed mode for some ports needs to differ from the default 400kHz speed set by this driver.
       This change allows the speed to be specified per port by the BIOS through an ACPI method named "FREQ".
    
       Signed-off-by: Dan O'Donovan <dan@emutex.com>
    
     - i2c: designware-platdrv: fix errors in 'FREQ' ACPI method handling
    
       Incorrect mechanism was used to retrieve value from FREQ ACPI.
       Also, moved sanity check on clk_freq value to cover all code paths that may set this value.
    
       Signed-off-by: Dan O'Donovan <dan@emutex.com>
    
    Signed-off-by: Nicola Lunghi <nicola.lunghi@emutex.com>
    Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    93c7d9e View commit details
    Browse the repository at this point in the history
  24. disable RTS override on LPSS UART with Auto Flow Control

    Currently, Auto Flow Control is not working correctly on the Atom
    X5-Z8350 "Cherry Trail" SoC, because an "RTS override" feature is
    enabled in a vendor-specific register in the LPSS UART. The symptom
    is that RTS is not de-asserted as it should be when RTS/CTS flow
    control is enabled and the RX FIFO fills up.
    
    This appears to be introduced by commit 1f47a77 ("ACPI / LPSS:
    not using UART RTS override with Auto Flow Control").
    
    To _disable_ the RTS override, bit 3 needs to be _set_ in the
    "GENERAL" register at offset 808h.  The power-on default is 0. The
    aforementioned commit appears to have assumed the inverse of this.
    
    Signed-off-by: Dan O'Donovan <dan@emutex.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Dan-Lightsource authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    94b8e67 View commit details
    Browse the repository at this point in the history
  25. serial: 8250_dw: add quirk to disable DMA on Cherry Trail SoC

    Using DMA with the HS-UART on the Atom X5-8350 "Cherry Trail" SoC
    results in data loss/corruption on UART transfers and the following
    error message filling the kernel log:
      "serial8250: too much work for irq39"
    
    As a temporary workaround, this commit disables use of DMA for the
    HS-UARTs on Cherry Trail (matching ACPI device ID "8086228A").
    
    Signed-off-by: Dan O'Donovan <dan@emutex.com>
    Dan-Lightsource authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    431736a View commit details
    Browse the repository at this point in the history
  26. ACPI: Add support to map GPIO resources to ranges

    Add a function to gpiolib to facilitate registering a pin controller for
    a range of GPIO pins, but using ACPI resource references and without
    claiming the GPIO resource.
    
    Nicola Lunghi: fixed a typo in include/linux/acpi.h
    
    Signed-off-by: Dan O'Donovan <dan@emutex.com>
    Signed-off-by: Nicola Lunghi <nicola.lunghi@emutex.com>
    Dan-Lightsource authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    9e9c3b1 View commit details
    Browse the repository at this point in the history
  27. pinctrl: intel: Add intel_gpio_get_direction

    Queries the current direction from GPIO pad registers.
    
    Signed-off-by: Javier Arteaga <javier@emutex.com>
    jbeta authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    708a776 View commit details
    Browse the repository at this point in the history
  28. pinctrl: allow multiple pin controllers for a GPIO

    Add support for chaining pinctrl drivers controlling the same GPIO line.
    This allows for hardware configurations where multiple controllers must
    to be configured to change the function or electrical properties of the
    line.
    
    Such is the case of the UP board family. On these boards, GPIO and other
    SoC functions are provided by a 40-pin Raspberry Pi compatible header,
    plus custom headers on certain models. However, for added flexibility,
    there is a FPGA between the SoC and these physical pins. In its default
    configuration, this FPGA implements a pin controller for FPGA-connected
    pins. This setup requires coordination between the SoC GPIO controller
    and the FPGA-based controller, hence this patch.
    
    Suggested-by: Dan O'Donovan <dan@emutex.com>
    Signed-off-by: Javier Arteaga <javier@emutex.com>
    jbeta authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    5b7d40d View commit details
    Browse the repository at this point in the history
  29. regmap: Expose regmap_writable function to check if a register is wri…

    …table
    
    Signed-off-by: Nicola Lunghi <nicola.lunghi@emutex.com>
    Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    c06e8a9 View commit details
    Browse the repository at this point in the history
  30. mfd: Add support for UP board CPLD/FPGA

    The UP Squared board <http://www.upboard.com> implements certain
    features (pin control, onboard LEDs or CEC) through an on-board FPGA.
    
    This mfd driver implements the line protocol to read and write registers
    from the FPGA through regmap. The register address map is also included.
    
    The UP boards come with a few FPGA-controlled onboard LEDs:
    * UP Board: yellow, green, red
    * UP Squared: blue, yellow, green, red
    
    The UP Boards provide a few I/O pin headers (for both GPIO and
    functions), including a 40-pin Raspberry Pi compatible header.
    
    This patch implements support for the FPGA-based pin controller that
    manages direction and enable state for those header pins.
    
    Signed-off-by: Javier Arteaga <javier@emutex.com>
    [merge various fixes]
    Signed-off-by: Nicola Lunghi <nicola.lunghi@emutex.com>
    jbeta authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    b215ed9 View commit details
    Browse the repository at this point in the history
  31. up: pinctrl: Bring in legacy fpga and pinctrl driver

    This commits just copies the legacy UP board platform driver and the
    pinctrl/fpga one from ubilinux-3 branch.
    The only change made was to obey to the following commit:
        58383c7 gpio: change member .dev to .parent
    
    Kernel config option to built-in UP support added in Kconfig&Makefile.
    
    UP1 board with FPGA1 protocol and old BIOS doesn't provide the necessary
    information via ACPI to the kernel, therefore the new MFD FPGA driver
    will not be loaded; instead this legacy platform driver will always be
    loaded and based on the platform detected will load or not the pinctrl
    one.
    
    Signed-off-by: Bogdan Pricop <bogdan.pricop@emutex.com>
    Bogdan Pricop authored and Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    f5ac7c7 View commit details
    Browse the repository at this point in the history
  32. upboard: added support for UP core + CREX HAT

    Signed-off-by: Nicola Lunghi <nicola.lunghi@emutex.com>
    [Javier: minor style consistency tweaks]
    Signed-off-by: Javier Arteaga <javier@emutex.com>
    Nicola Lunghi committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    973c039 View commit details
    Browse the repository at this point in the history