27 Nov, 2017

2 commits

  • Pull irq fixes from Thomas Glexiner:

    - unbreak the irq trigger type check for legacy platforms

    - a handful fixes for ARM GIC v3/4 interrupt controllers

    - a few trivial fixes all over the place

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    genirq/matrix: Make - vs ?: Precedence explicit
    irqchip/imgpdc: Use resource_size function on resource object
    irqchip/qcom: Fix u32 comparison with value less than zero
    irqchip/exiu: Fix return value check in exiu_init()
    irqchip/gic-v3-its: Remove artificial dependency on PCI
    irqchip/gic-v4: Add forward definition of struct irq_domain_ops
    irqchip/gic-v3: pr_err() strings should end with newlines
    irqchip/s3c24xx: pr_err() strings should end with newlines
    irqchip/gic-v3: Fix ppi-partitions lookup
    irqchip/gic-v4: Clear IRQ_DISABLE_UNLAZY again if mapping fails
    genirq: Track whether the trigger type has been set

    Linus Torvalds
     
  • Pull misc x86 fixes from Ingo Molnar:
    - topology enumeration fixes
    - KASAN fix
    - two entry fixes (not yet the big series related to KASLR)
    - remove obsolete code
    - instruction decoder fix
    - better /dev/mem sanity checks, hopefully working better this time
    - pkeys fixes
    - two ACPI fixes
    - 5-level paging related fixes
    - UMIP fixes that should make application visible faults more debuggable
    - boot fix for weird virtualization environment

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    x86/decoder: Add new TEST instruction pattern
    x86/PCI: Remove unused HyperTransport interrupt support
    x86/umip: Fix insn_get_code_seg_params()'s return value
    x86/boot/KASLR: Remove unused variable
    x86/entry/64: Add missing irqflags tracing to native_load_gs_index()
    x86/mm/kasan: Don't use vmemmap_populate() to initialize shadow
    x86/entry/64: Fix entry_SYSCALL_64_after_hwframe() IRQ tracing
    x86/pkeys/selftests: Fix protection keys write() warning
    x86/pkeys/selftests: Rename 'si_pkey' to 'siginfo_pkey'
    x86/mpx/selftests: Fix up weird arrays
    x86/pkeys: Update documentation about availability
    x86/umip: Print a warning into the syslog if UMIP-protected instructions are used
    x86/smpboot: Fix __max_logical_packages estimate
    x86/topology: Avoid wasting 128k for package id array
    perf/x86/intel/uncore: Cache logical pkg id in uncore driver
    x86/acpi: Reduce code duplication in mp_override_legacy_irq()
    x86/acpi: Handle SCI interrupts above legacy space gracefully
    x86/boot: Fix boot failure when SMP MP-table is based at 0
    x86/mm: Limit mmap() of /dev/mem to valid physical addresses
    x86/selftests: Add test for mapping placement for 5-level paging
    ...

    Linus Torvalds
     

26 Nov, 2017

1 commit

  • Pull timer updates from Thomas Gleixner:

    - The final conversion of timer wheel timers to timer_setup().

    A few manual conversions and a large coccinelle assisted sweep and
    the removal of the old initialization mechanisms and the related
    code.

    - Remove the now unused VSYSCALL update code

    - Fix permissions of /proc/timer_list. I still need to get rid of that
    file completely

    - Rename a misnomed clocksource function and remove a stale declaration

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
    m68k/macboing: Fix missed timer callback assignment
    treewide: Remove TIMER_FUNC_TYPE and TIMER_DATA_TYPE casts
    timer: Remove redundant __setup_timer*() macros
    timer: Pass function down to initialization routines
    timer: Remove unused data arguments from macros
    timer: Switch callback prototype to take struct timer_list * argument
    timer: Pass timer_list pointer to callbacks unconditionally
    Coccinelle: Remove setup_timer.cocci
    timer: Remove setup_*timer() interface
    timer: Remove init_timer() interface
    treewide: setup_timer() -> timer_setup() (2 field)
    treewide: setup_timer() -> timer_setup()
    treewide: init_timer() -> setup_timer()
    treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
    s390: cmm: Convert timers to use timer_setup()
    lightnvm: Convert timers to use timer_setup()
    drivers/net: cris: Convert timers to use timer_setup()
    drm/vc4: Convert timers to use timer_setup()
    block/laptop_mode: Convert timers to use timer_setup()
    net/atm/mpc: Avoid open-coded assignment of timer callback function
    ...

    Linus Torvalds
     

25 Nov, 2017

1 commit

  • Pull SCSI target updates from Nicholas Bellinger:

    "This series is predominantly bug-fixes, with a few small improvements
    that have been outstanding over the last release cycle.

    As usual, the associated bug-fixes have CC' tags for stable.

    Also, things have been particularly quiet wrt new developments the
    last months, with most folks continuing to focus on stability atop 4.x
    stable kernels for their respective production configurations.

    Also at this point, the stable trees have been synced up with
    mainline. This will continue to be a priority, as production users
    tend to run exclusively atop stable kernels, a few releases behind
    mainline.

    The highlights include:

    - Fix PR PREEMPT_AND_ABORT null pointer dereference regression in
    v4.11+ (tangwenji)

    - Fix OOPs during removing TCMU device (Xiubo Li + Zhang Zhuoyu)

    - Add netlink command reply supported option for each device (Kenjiro
    Nakayama)

    - cxgbit: Abort the TCP connection in case of data out timeout (Varun
    Prakash)

    - Fix PR/ALUA file path truncation (David Disseldorp)

    - Fix double se_cmd completion during ->cmd_time_out (Mike Christie)

    - Fix QUEUE_FULL + SCSI task attribute handling in 4.1+ (Bryant Ly +
    nab)

    - Fix quiese during transport_write_pending_qf endless loop (nab)

    - Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK in 3.14+
    (Don White + nab)"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (35 commits)
    tcmu: Add a missing unlock on an error path
    tcmu: Fix some memory corruption
    iscsi-target: Fix non-immediate TMR reference leak
    iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref
    target: Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK
    target: Fix quiese during transport_write_pending_qf endless loop
    target: Fix caw_sem leak in transport_generic_request_failure
    target: Fix QUEUE_FULL + SCSI task attribute handling
    iSCSI-target: Use common error handling code in iscsi_decode_text_input()
    target/iscsi: Detect conn_cmd_list corruption early
    target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd()
    target/iscsi: Modify iscsit_do_crypto_hash_buf() prototype
    target/iscsi: Fix endianness in an error message
    target/iscsi: Use min() in iscsit_dump_data_payload() instead of open-coding it
    target/iscsi: Define OFFLOAD_BUF_SIZE once
    target: Inline transport_put_cmd()
    target: Suppress gcc 7 fallthrough warnings
    target: Move a declaration of a global variable into a header file
    tcmu: fix double se_cmd completion
    target: return SAM_STAT_TASK_SET_FULL for TCM_OUT_OF_RESOURCES
    ...

    Linus Torvalds
     

24 Nov, 2017

17 commits

  • Pull networking fixes from David Miller:

    1) Fix PCI IDs of 9000 series iwlwifi devices, from Luca Coelho.

    2) bpf offload bug fixes from Jakub Kicinski.

    3) Fix bpf verifier to NOP out code which is dead at run time because
    due to branch pruning the verifier will not explore such
    instructions. From Alexei Starovoitov.

    4) Fix crash when deleting secondary chains in packet scheduler
    classifier. From Roman Kapl.

    5) Fix buffer management bugs in smc, from Ursula Braun.

    6) Fix regression in anycast route handling, from David Ahern.

    7) Fix link settings regression in r8169, from Tobias Jakobi.

    8) Add back enough UFO support so that live migration still works, from
    Willem de Bruijn.

    9) Linearize enough packet data for the full extent to which the ipvlan
    code will inspect the packet headers, from Gao Feng.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (46 commits)
    ipvlan: Fix insufficient skb linear check for ipv6 icmp
    ipvlan: Fix insufficient skb linear check for arp
    geneve: only configure or fill UDP_ZERO_CSUM6_RX/TX info when CONFIG_IPV6
    net: dsa: bcm_sf2: Clear IDDQ_GLOBAL_PWR bit for PHY
    net: accept UFO datagrams from tuntap and packet
    net: realtek: r8169: implement set_link_ksettings()
    net: ipv6: Fixup device for anycast routes during copy
    net/smc: Fix preinitialization of buf_desc in __smc_buf_create()
    net/smc: use sk_rcvbuf as start for rmb creation
    ipv6: Do not consider linkdown nexthops during multipath
    net: sched: fix crash when deleting secondary chains
    net: phy: cortina: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
    bpf: fix branch pruning logic
    bpf: change bpf_perf_event_output arg5 type to ARG_CONST_SIZE_OR_ZERO
    bpf: change bpf_probe_read_str arg2 type to ARG_CONST_SIZE_OR_ZERO
    bpf: remove explicit handling of 0 for arg2 in bpf_probe_read
    bpf: introduce ARG_PTR_TO_MEM_OR_NULL
    i40evf: Use smp_rmb rather than read_barrier_depends
    fm10k: Use smp_rmb rather than read_barrier_depends
    igb: Use smp_rmb rather than read_barrier_depends
    ...

    Linus Torvalds
     
  • Pull x86 platform driver fixes from Darren Hart:
    "Fix two issues resulting from the dell-smbios refactoring and
    introduction of the dell-smbios-wmi dispatcher.

    The first ensures a proper error code is returned when kzalloc fails.

    The second avoids an issue in older Dell BIOS implementations which
    would fail if the more complex calls were made by limiting those
    platforms to the simple calls such as those used by the existing
    dell-laptop and dell-wmi drivers, preserving their functionality prior
    to the addition of the dell-smbios-wmi dispatcher"

    * tag 'platform-drivers-x86-v4.15-2' of git://git.infradead.org/linux-platform-drivers-x86:
    platform/x86: dell-laptop: fix error return code in dell_init()
    platform/x86: dell-smbios-wmi: Disable userspace interface if missing hotfix

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "Two basic fixes: one for the sparse problem with the blacklist flags
    and another for a hang forever in bnx2i"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: Use 'blist_flags_t' for scsi_devinfo flags
    scsi: bnx2fc: Fix hung task messages when a cleanup response is not received during abort

    Linus Torvalds
     
  • Pull more drm updates from Dave Airlie:
    "Fixes/cleanups for rc1, non-desktop flags for VR

    - remove the MSM dt-bindings file Rob managed to push in the previous
    pull.

    - add a property/edid quirk to denote HMD devices, I had these
    hanging around for a few weeks and Keith had done some work on
    them, they are fairly self contained and small, and only affect
    people using HTC Vive VR headsets so far.

    - amdgpu, tegra, tilcdc, fsl fixes

    - some imx-drm cleanups I missed, these seemed pretty small, and no
    reason to hold off.

    I have one TTM regression fix (fixes bochs-vga in qemu) sitting
    locally awaiting review I'll probably send that in a separate pull
    request tomorrow"

    * tag 'drm-for-v4.15-part2' of git://people.freedesktop.org/~airlied/linux: (33 commits)
    dt-bindings: remove file that was added accidentally
    drm/edid: quirk HTC vive headset as non-desktop. [v2]
    drm/fb: add support for not enabling fbcon on non-desktop displays [v2]
    drm: add connector info/property for non-desktop displays [v2]
    drm/amdgpu: fix rmmod KCQ disable failed error
    drm/amdgpu: fix kernel hang when starting VNC server
    drm/amdgpu: don't skip attributes when powerplay is enabled
    drm/amd/pp: fix typecast error in powerplay.
    drm/tilcdc: Remove obsolete "ti,tilcdc,slave" dts binding support
    drm/tegra: sor: Reimplement pad clock
    Revert "drm/radeon: dont switch vt on suspend"
    drm/amd/amdgpu: fix over-bound accessing in amdgpu_cs_wait_any_fence
    drm/amd/powerplay: fix unfreeze level smc message for smu7
    drm/amdgpu:fix memleak
    drm/amdgpu:fix memleak in takedown
    drm/amd/pp: fix dpm randomly failed on Vega10
    drm/amdgpu: set f_mapping on exported DMA-bufs
    drm/amdgpu: Properly allocate VM invalidate eng v2
    drm/fsl-dcu: enable IRQ before drm_atomic_helper_resume()
    drm/fsl-dcu: avoid disabling pixel clock twice on suspend
    ...

    Linus Torvalds
     
  • There are no in-tree callers of ht_create_irq(), the driver interface for
    HyperTransport interrupts, left. Remove the unused entry point and all the
    supporting code.

    See 8b955b0dddb3 ("[PATCH] Initial generic hypertransport interrupt
    support").

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Thomas Gleixner
    Acked-by: "Eric W. Biederman"
    Cc: Andi Kleen
    Cc: Greg Kroah-Hartman
    Cc: linux-pci@vger.kernel.org
    Cc: Benjamin Herrenschmidt
    Link: https://lkml.kernel.org/r/20171122221337.3877.23362.stgit@bhelgaas-glaptop.roam.corp.google.com

    Bjorn Helgaas
     
  • drivers/irqchip/irq-imgpdc.c:327:20-23: WARNING: Suspicious code.
    resource_size is maybe missing with res_regs

    Generated by: scripts/coccinelle/api/resource_size.cocci

    Signed-off-by: Vasyl Gomonovych
    Signed-off-by: Thomas Gleixner
    Cc: marc.zyngier@arm.com
    Cc: jason@lakedaemon.net
    Link: https://lkml.kernel.org/r/1511215361-8279-1-git-send-email-gomonovych@gmail.com

    Vasyl Gomonovych
     
  • The comparison of u32 nregs being less than zero is never true since
    nregs is unsigned. Fix this by making nregs a signed integer.

    Fixes: f20cc9b00c7b ("irqchip/qcom: Add IRQ combiner driver")
    Signed-off-by: Colin Ian King
    Signed-off-by: Thomas Gleixner
    Cc: Marc Zyngier
    Cc: kernel-janitors@vger.kernel.org
    Cc: Jason Cooper
    Link: https://lkml.kernel.org/r/20171117183553.2739-1-colin.king@canonical.com

    Colin Ian King
     
  • In the function ipvlan_get_L3_hdr, current codes use pskb_may_pull to
    make sure the skb header has enough linear room for ipv6 header. But it
    would use the latter memory directly without linear check when it is icmp.
    So it still may access the unepxected memory in ipvlan_addr_lookup.

    Now invoke the pskb_may_pull again if it is ipv6 icmp.

    Signed-off-by: Gao Feng
    Signed-off-by: David S. Miller

    Gao Feng
     
  • In the function ipvlan_get_L3_hdr, current codes use pskb_may_pull to
    make sure the skb header has enough linear room for arp header. But it
    would access the arp payload in func ipvlan_addr_lookup. So it still may
    access the unepxected memory.

    Now use arp_hdr_len(port->dev) instead of the arp header as the param.

    Signed-off-by: Gao Feng
    Signed-off-by: David S. Miller

    Gao Feng
     
  • Stefano pointed that configure or show UDP_ZERO_CSUM6_RX/TX info doesn't
    make sense if we haven't enabled CONFIG_IPV6. Fix it by adding
    if IS_ENABLED(CONFIG_IPV6) check.

    Fixes: abe492b4f50c ("geneve: UDP checksum configuration via netlink")
    Fixes: fd7eafd02121 ("geneve: fix fill_info when link down")
    Signed-off-by: Hangbin Liu
    Reviewed-by: Stefano Brivio
    Signed-off-by: David S. Miller

    Hangbin Liu
     
  • …m/linux/kernel/git/kvalo/wireless-drivers

    Kalle Valo says:

    ====================
    wireless-drivers fixes for 4.15

    First set of fixes for 4.15. Most important here is the iwlwifi fix
    for scan command firmware interface change.

    ath10k

    * fix CCMP-256, GCMP and GCMP-256 in raw mode, it was never working

    wcn36xx

    * fix device tree node search

    iwlwifi

    * fix a regression with firmware API change of scan cmd (introduced in
    firmware version 34)

    * add a bunch of PCI IDs and fix configuration structs for A000 devices

    * fix the exported firmware name strings for 9000 and A000 devices
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • Jeff Kirsher says:

    ====================
    Intel Wired LAN Driver Fixes 2017-11-21

    This series contains fixes for igb/vf, ixgbe/vf, i40e/vf and fm10k.

    Jake fixes a regression issue with older firmware, where we were using
    the NVM lock to synchronize NVM reads for all devices and firmware
    versions, yet this caused issues with older firmware prior to version
    1.5. Fixed this by only grabbing the lock for newer devices and firmware
    version 1.5 or newer.

    Zijie Pan fixes the calculation of the i40e VF MAC addresses, where it was
    possible to increment to the next MAC entry without calling
    i40e_add_mac_filter().

    Amritha removes the upper limit of 64 queues on a channel VSI since the
    upper bound is determined by the VSI's num_queue_pairs.

    Filip fixes an issue during FLR resets, where should have been checking
    for upcoming core reset and if so, just return with I40E_ERR_NOT_READY.

    Alan fixes the notifying clients of l2 parameters by copying the
    parameters to the client instance struct and re-organizes the priority
    in which the client tasks fire so that if the flag for notifying l2
    params is set, it will trigger before the client open task. Also fixed
    the promiscuous settings after reset for all the VSI's.

    Brian King from IBM fixes an issue seen on Power systems which would
    result in skb list corruption and eventual kernel oops. Brian
    provides the same fix for nearly all our drivers, to replace the
    read_barrier_depends with smp_rmb() to ensure loads are ordered with
    respect to the load of tx_buffer->next_to_watch.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The PHY on BCM7278 has an additional bit that needs to be cleared:
    IDDQ_GLOBAL_PWR, without doing this, the PHY remains stuck in reset out
    of suspend/resume cycles.

    Fixes: 0fe9933804eb ("net: dsa: bcm_sf2: Add support for BCM7278 integrated switch")
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • Daniel Borkmann says:

    ====================
    pull-request: bpf 2017-11-23

    The following pull-request contains BPF updates for your *net* tree.

    The main changes are:

    1) Several BPF offloading fixes, from Jakub. Among others:

    - Limit offload to cls_bpf and XDP program types only.
    - Move device validation into the driver and don't make
    any assumptions about the device in the classifier due
    to shared blocks semantics.
    - Don't pass offloaded XDP program into the driver when
    it should be run in native XDP instead. Offloaded ones
    are not JITed for the host in such cases.
    - Don't destroy device offload state when moved to
    another namespace.
    - Revert dumping offload info into user space for now,
    since ifindex alone is not sufficient. This will be
    redone properly for bpf-next tree.

    2) Fix test_verifier to avoid using bpf_probe_write_user()
    helper in test cases, since it's dumping a warning into
    kernel log which may confuse users when only running tests.
    Switch to use bpf_trace_printk() instead, from Yonghong.

    3) Several fixes for correcting ARG_CONST_SIZE_OR_ZERO semantics
    before it becomes uabi, from Gianluca. More specifically:

    - Add a type ARG_PTR_TO_MEM_OR_NULL that is used only
    by bpf_csum_diff(), where the argument is either a
    valid pointer or NULL. The subsequent ARG_CONST_SIZE_OR_ZERO
    then enforces a valid pointer in case of non-0 size
    or a valid pointer or NULL in case of size 0. Given
    that, the semantics for ARG_PTR_TO_MEM in combination
    with ARG_CONST_SIZE_OR_ZERO are now such that in case
    of size 0, the pointer must always be valid and cannot
    be NULL. This fix in semantics allows for bpf_probe_read()
    to drop the recently added size == 0 check in the helper
    that would become part of uabi otherwise once released.
    At the same time we can then fix bpf_probe_read_str() and
    bpf_perf_event_output() to use ARG_CONST_SIZE_OR_ZERO
    instead of ARG_CONST_SIZE in order to fix recently
    reported issues by Arnaldo et al, where LLVM optimizes
    two boundary checks into a single one for unknown
    variables where the verifier looses track of the variable
    bounds and thus rejects valid programs otherwise.

    4) A fix for the verifier for the case when it detects
    comparison of two constants where the branch is guaranteed
    to not be taken at runtime. Verifier will rightfully prune
    the exploration of such paths, but we still pass the program
    to JITs, where they would complain about using reserved
    fields, etc. Track such dead instructions and sanitize
    them with mov r0,r0. Rejection is not possible since LLVM
    may generate them for valid C code and doesn't do as much
    data flow analysis as verifier. For bpf-next we might
    implement removal of such dead code and adjust branches
    instead. Fix from Alexei.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Tuntap and similar devices can inject GSO packets. Accept type
    VIRTIO_NET_HDR_GSO_UDP, even though not generating UFO natively.

    Processes are expected to use feature negotiation such as TUNSETOFFLOAD
    to detect supported offload types and refrain from injecting other
    packets. This process breaks down with live migration: guest kernels
    do not renegotiate flags, so destination hosts need to expose all
    features that the source host does.

    Partially revert the UFO removal from 182e0b6b5846~1..d9d30adf5677.
    This patch introduces nearly(*) no new code to simplify verification.
    It brings back verbatim tuntap UFO negotiation, VIRTIO_NET_HDR_GSO_UDP
    insertion and software UFO segmentation.

    It does not reinstate protocol stack support, hardware offload
    (NETIF_F_UFO), SKB_GSO_UDP tunneling in SKB_GSO_SOFTWARE or reception
    of VIRTIO_NET_HDR_GSO_UDP packets in tuntap.

    To support SKB_GSO_UDP reappearing in the stack, also reinstate
    logic in act_csum and openvswitch. Achieve equivalence with v4.13 HEAD
    by squashing in commit 939912216fa8 ("net: skb_needs_check() removes
    CHECKSUM_UNNECESSARY check for tx.") and reverting commit 8d63bee643f1
    ("net: avoid skb_warn_bad_offload false positives on UFO").

    (*) To avoid having to bring back skb_shinfo(skb)->ip6_frag_id,
    ipv6_proxy_select_ident is changed to return a __be32 and this is
    assigned directly to the frag_hdr. Also, SKB_GSO_UDP is inserted
    at the end of the enum to minimize code churn.

    Tested
    Booted a v4.13 guest kernel with QEMU. On a host kernel before this
    patch `ethtool -k eth0` shows UFO disabled. After the patch, it is
    enabled, same as on a v4.13 host kernel.

    A UFO packet sent from the guest appears on the tap device:
    host:
    nc -l -p -u 8000 &
    tcpdump -n -i tap0

    guest:
    dd if=/dev/zero of=payload.txt bs=1 count=2000
    nc -u 192.16.1.1 8000 < payload.txt

    Direct tap to tap transmission of VIRTIO_NET_HDR_GSO_UDP succeeds,
    packets arriving fragmented:

    ./with_tap_pair.sh ./tap_send_ufo tap0 tap1
    (from https://github.com/wdebruij/kerneltools/tree/master/tests)

    Changes
    v1 -> v2
    - simplified set_offload change (review comment)
    - documented test procedure

    Link: http://lkml.kernel.org/r/
    Fixes: fb652fdfe837 ("macvlan/macvtap: Remove NETIF_F_UFO advertisement.")
    Reported-by: Michal Kubecek
    Signed-off-by: Willem de Bruijn
    Acked-by: Jason Wang
    Signed-off-by: David S. Miller

    Willem de Bruijn
     
  • Commit 6fa1ba61520576cf1346c4ff09a056f2950cb3bf partially
    implemented the new ethtool API, by replacing get_settings()
    with get_link_ksettings(). This breaks ethtool, since the
    userspace tool (according to the new API specs) never tries
    the legacy set() call, when the new get() call succeeds.

    All attempts to chance some setting from userspace result in:
    > Cannot set new settings: Operation not supported

    Implement the missing set() call.

    Signed-off-by: Tobias Jakobi
    Tested-by: Holger Hoffstätte
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Tobias Jakobi
     
  • This change resolves a new compile-time warning
    when built as a loadable module:

    WARNING: modpost: missing MODULE_LICENSE() in drivers/net/phy/cortina.o
    see include/linux/module.h for more information

    This adds the license as "GPL", which matches the header of the file.

    MODULE_DESCRIPTION and MODULE_AUTHOR are also added.

    Signed-off-by: Jesse Chan
    Signed-off-by: David S. Miller

    Jesse Chan
     

23 Nov, 2017

11 commits

  • …pub/scm/linux/kernel/git/kees/linux into timers/urgent

    Pull the last batch of manual timer conversions from Kees Cook:

    - final batch of "non trivial" timer conversions (multi-tree dependencies,
    things Coccinelle couldn't handle, etc).

    - treewide conversions via Coccinelle, in 4 steps:
    - DEFINE_TIMER() functions converted to struct timer_list * argument
    - init_timer() -> setup_timer()
    - setup_timer() -> timer_setup()
    - setup_timer() -> timer_setup() (with a single embedded structure)

    - deprecated timer API removals (init_timer(), setup_*timer())

    - finalization of new API (remove global casts)

    Thomas Gleixner
     
  • …ierry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "The changes for this release include power management improvements for
    the pwm-img driver, support for the backup mode on pwm-atmel-tcb as
    well as support for more hardware with the R-Car and Mediatek drivers.

    To round things off there's a bit of cleanup for sunxi and stm32-lp"

    * tag 'pwm/for-4.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
    pwm: stm32-lp: Remove pwm_is_enabled() check before calling pwm_disable()
    pwm: mediatek: Add MT2712/MT7622 support
    pwm: sunxi: Use of_device_get_match_data()
    pwm: atmel-tcb: Support backup mode
    dt-bindings: pwm: Add R-Car D3 device tree bindings
    pwm: img: Add runtime PM
    pwm: img: Add suspend / resume handling

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "There is nothing scary this cycle, mostly driver fixes and updates.

    The core fix has been in for a while and has been tested on multiple
    kernel revisions by multiple teams.

    Core:
    - Fix setting the alarm to the next expiring timer

    New drivers:
    - Mediatek MT7622 RTC
    - NXP PCF85363
    - Spreadtrum SC27xx PMIC RTC

    Drivers updates:
    - Use generic nvmem to expose the Non volatile ram for ds1305,
    ds1511, m48t86 and omap
    - abx80x: solve possible race condition at probe
    - armada38x: support trimming the RTC oscillator
    - at91rm9200: fix reading the alarm value at boot
    - ds1511: allow waking platform
    - m41t80: rework square wave output
    - pcf8523: support trimming the RTC oscillator
    - pcf8563: fix clock output rate
    - pl031: make interrupt optional
    - xgene: fix suspend/resume"

    * tag 'rtc-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (50 commits)
    dt-bindings: rtc: imxdi: Improve the bindings text
    rtc: sc27xx: Add Spreadtrum SC27xx PMIC RTC driver
    dt-bindings: rtc: Add Spreadtrum SC27xx RTC documentation
    rtc: at91rm9200: fix reading alarm value
    rtc: at91rm9200: stop calculating yday in at91_rtc_readalarm
    rtc: sysfs: Use time64_t variables to set time/alarm
    rtc: xgene: mark PM functions as __maybe_unused
    rtc: xgene: Fix suspend/resume
    rtc: pcf8563: don't alway enable the alarm
    rtc: pcf8563: fix output clock rate
    rtc: rx8010: Fix for incorrect return value
    rtc: rx8010: Specify correct address for RX8010_RESV31
    rtc: rx8010: Remove duplicate define
    rtc: m41t80: remove unneeded checks from m41t80_sqw_set_rate
    rtc: m41t80: avoid i2c read in m41t80_sqw_is_prepared
    rtc: m41t80: avoid i2c read in m41t80_sqw_recalc_rate
    rtc: m41t80: fix m41t80_sqw_round_rate return value
    rtc: m41t80: m41t80_sqw_set_rate should return 0 on success
    rtc: add support for NXP PCF85363 real-time clock
    rtc: omap: Support scratch registers
    ...

    Linus Torvalds
     
  • Pull MTD updates from Richard Weinberger:
    "General changes:
    - Unconfuse get_unmapped_area and point/unpoint driver methods
    - New partition parser: sharpslpart
    - Kill GENERIC_IO
    - Various fixes

    NAND changes:
    - Add a flag to mark NANDs that require 3 address cycles to encode a
    page address
    - Set a default ECC/free layout when NAND_ECC_NONE is requested
    - Fix a bug in panic_nand_write()
    - Another batch of cleanups for the denali driver
    - Fix PM support in the atmel driver
    - Remove support for platform data in the omap driver
    - Fix subpage write in the omap driver
    - Fix irq handling in the mtk driver
    - Change link order of mtk_ecc and mtk_nand drivers to speed up boot
    time
    - Change log level of ECC error messages in the mxc driver
    - Patch the pxa3xx driver to support Armada 8k platforms
    - Add BAM DMA support to the qcom driver
    - Convert gpio-nand to the GPIO desc API
    - Fix ECC handling in the mt29f driver

    SPI-NOR changes:
    - Introduce system power management support
    - New mechanism to select the proper .quad_enable() hook by JEDEC
    ID, when needed, instead of only by manufacturer ID
    - Add support to new memory parts from Gigadevice, Winbond, Macronix
    and Everspin
    - Maintainance for Cadence, Intel, Mediatek and STM32 drivers"

    * tag 'for-linus-20171120' of git://git.infradead.org/linux-mtd: (85 commits)
    mtd: Avoid probe failures when mtd->dbg.dfs_dir is invalid
    mtd: sharpslpart: Add sharpslpart partition parser
    mtd: Add sanity checks in mtd_write/read_oob()
    mtd: remove the get_unmapped_area method
    mtd: implement mtd_get_unmapped_area() using the point method
    mtd: chips/map_rom.c: implement point and unpoint methods
    mtd: chips/map_ram.c: implement point and unpoint methods
    mtd: mtdram: properly handle the phys argument in the point method
    mtd: mtdswap: fix spelling mistake: 'TRESHOLD' -> 'THRESHOLD'
    mtd: slram: use memremap() instead of ioremap()
    kconfig: kill off GENERIC_IO option
    mtd: Fix C++ comment in include/linux/mtd/mtd.h
    mtd: constify mtd_partition
    mtd: plat-ram: Replace manual resource management by devm
    mtd: nand: Fix writing mtdoops to nand flash.
    mtd: intel-spi: Add Intel Lewisburg PCH SPI super SKU PCI ID
    mtd: nand: mtk: fix infinite ECC decode IRQ issue
    mtd: spi-nor: Add support for mr25h128
    mtd: nand: mtk: change the compile sequence of mtk_nand.o and mtk_ecc.o
    mtd: spi-nor: enable 4B opcodes for mx66l51235l
    ...

    Linus Torvalds
     
  • This uses the EDID info from my HTC Vive to mark it as
    non-desktop.

    v2: Change description from non-standard to non-desktop

    Reviewed-by: Keith Packard
    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • We don't want fbcon to get used on non-desktop dislays,
    don't pass them as enabled connectors to the fb helper setup.

    This prevents my HMD from getting disorted fbcon, and from
    affecting other displays console.

    v2: Change description from non-standard to non-desktop

    Reviewed-by: Keith Packard
    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • This adds the infrastructure needed to quirk displays
    using edid and to mark them a non-desktop.

    A non-desktop display is one which shouldn't normally be included
    as a part of a desktop environment.

    This is meant to cover head mounted devices like HTC Vive.

    v2: Change description from non-standard to non-desktop, add docs

    Reviewed-by: Keith Packard
    Signed-off-by: Dave Airlie

    fixup docs

    Dave Airlie
     
  • tilcdc fixes for v4.15

    * tag 'tilcdc-4.15-fixes' of https://github.com/jsarha/linux:
    drm/tilcdc: Remove obsolete "ti,tilcdc,slave" dts binding support

    Dave Airlie
     
  • more misc amdgpu fixes.

    * 'drm-next-4.15' of git://people.freedesktop.org/~agd5f/linux:
    drm/amdgpu: fix rmmod KCQ disable failed error
    drm/amdgpu: fix kernel hang when starting VNC server
    drm/amdgpu: don't skip attributes when powerplay is enabled
    drm/amd/pp: fix typecast error in powerplay.
    Revert "drm/radeon: dont switch vt on suspend"
    drm/amd/amdgpu: fix over-bound accessing in amdgpu_cs_wait_any_fence
    drm/amd/powerplay: fix unfreeze level smc message for smu7
    drm/amdgpu:fix memleak
    drm/amdgpu:fix memleak in takedown

    Dave Airlie
     
  • drm/imx: various cleanups

    - Switch to drm_*_get/put() helpers
    - Use correct parallel-display connector enum: DPI instead of VGA
    - Remove incorrect unit name from device tree binding documentation example
    - Remove an unused variable

    * tag 'imx-drm-next-2017-10-18' of git://git.pengutronix.de/git/pza/linux:
    gpu: ipu-v3: ipu-dc: Remove unused 'di' variable
    dt-bindings: fsl-imx-drm: Remove incorrect "@di0" usage
    drm/imx: parallel-display: use correct connector enum
    drm/imx: switch to drm_*_get(), drm_*_put() helpers

    Dave Airlie
     
  • drm/tegra: Fixes for v4.15-rc1

    This includes an update to the SOR pad clock programming needed because
    of some changes that went in through the clock tree.

    * tag 'drm/tegra/for-4.15-rc1-fixes' of git://anongit.freedesktop.org/tegra/linux:
    drm/tegra: sor: Reimplement pad clock

    Dave Airlie
     

22 Nov, 2017

8 commits

  • The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with i40evf as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.

    Cc: stable
    Signed-off-by: Brian King
    Acked-by: Jesse Brandeburg
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Brian King
     
  • The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with fm10k as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.

    Cc: stable
    Signed-off-by: Brian King
    Acked-by: Jesse Brandeburg
    Signed-off-by: Jeff Kirsher

    Brian King
     
  • The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with igb as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.

    Cc: stable
    Signed-off-by: Brian King
    Acked-by: Jesse Brandeburg
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Brian King
     
  • The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with igbvf as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.

    Cc: stable
    Signed-off-by: Brian King
    Acked-by: Jesse Brandeburg
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Brian King
     
  • The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with ixgbevf as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.

    Cc: stable
    Signed-off-by: Brian King
    Acked-by: Jesse Brandeburg
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Brian King
     
  • The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with i40e as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.

    Cc: stable
    Signed-off-by: Brian King
    Acked-by: Jesse Brandeburg
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Brian King
     
  • This patch fixes an issue seen on Power systems with ixgbe which results
    in skb list corruption and an eventual kernel oops. The following is what
    was observed:

    CPU 1 CPU2
    ============================ ============================
    1: ixgbe_xmit_frame_ring ixgbe_clean_tx_irq
    2: first->skb = skb eop_desc = tx_buffer->next_to_watch
    3: ixgbe_tx_map read_barrier_depends()
    4: wmb check adapter written status bit
    5: first->next_to_watch = tx_desc napi_consume_skb(tx_buffer->skb ..);
    6: writel(i, tx_ring->tail);

    The read_barrier_depends is insufficient to ensure that tx_buffer->skb does not
    get loaded prior to tx_buffer->next_to_watch, which then results in loading
    a stale skb pointer. This patch replaces the read_barrier_depends with
    smp_rmb to ensure loads are ordered with respect to the load of
    tx_buffer->next_to_watch.

    Cc: stable
    Signed-off-by: Brian King
    Acked-by: Jesse Brandeburg
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Brian King
     
  • After a reset we rebuild the VSIs which is going to clobber any
    promiscuous settings we had before reset. This makes it so that we
    restore the promiscuous settings we had before reset.

    Signed-off-by: Alan Brady
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Alan Brady