22 Mar, 2016

1 commit

  • 'struct timeval' uses a 32 bit field for its 'seconds' value which
    will overflow in year 2038 and beyond. This patch replaces the use
    of timeval in nosy.c with timespec64 which doesn't suffer from y2038
    issue. The code is correct as is - since it is only using the
    microseconds portion of timeval. However, this patch does the
    replacement as part of a larger effort to remove all instances of
    'struct timeval' from the kernel (that would help identify cases
    where the code is actually broken).

    Signed-off-by: Tina Ruchandani
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Stefan Richter

    Tina Ruchandani
     

12 Mar, 2016

1 commit

  • Hinawa [https://github.com/takaswie/libhinawa/] is a library for
    access to IEEE 1394 devices. As a gobject introspection library, it
    facilitates writing applications in high-level programming languages.
    Besides generic I/O via /dev/fw* (firewire-cdev ABI), it also supports
    control of IEEE 1394 audio hardware via ALSA hwdep ABIs which are
    provided by sound/firewire drivers.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

05 Nov, 2015

4 commits

  • Signed-off-by: Stefan Richter

    Stefan Richter
     
  • software_reset() may fail
    - due to unresponsive chip with -EBUSY (-16), or
    - due to ejected or unseated card with -ENODEV (-19).
    Let the PCI probe and resume routines log the actual error code instead
    of hardwired -EBUSY.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • 32 bit systems using 'struct timeval' will break in the year 2038, so
    we replace the code appropriately. However, this driver is not broken
    in 2038 since we are using only the microseconds portion of the
    current time.

    This patch replaces timeval with timespec64.

    Signed-off-by: Amitoj Kaur Chawla
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Stefan Richter

    Amitoj Kaur Chawla
     
  • Reported by Clifford and Craig for JMicron OHCI-1394 + SDHCI combo
    controllers: Often or even most of the time, the controller is
    initialized with the message "added OHCI v1.10 device as card 0, 4 IR +
    0 IT contexts, quirks 0x10". With 0 isochronous transmit DMA contexts
    (IT contexts), applications like audio output are impossible.

    However, OHCI-1394 demands that at least 4 IT contexts are implemented
    by the link layer controller, and indeed JMicron JMB38x do implement
    four of them. Only their IsoXmitIntMask register is unreliable at early
    access.

    With my own JMB381 single function controller I found:
    - I can reproduce the problem with a lower probability than Craig's.
    - If I put a loop around the section which clears and reads
    IsoXmitIntMask, then either the first or the second attempt will
    return the correct initial mask of 0x0000000f. I never encountered
    a case of needing more than a second attempt.
    - Consequently, if I put a dummy reg_read(...IsoXmitIntMaskSet)
    before the first write, the subsequent read will return the correct
    result.
    - If I merely ignore a wrong read result and force the known real
    result, later isochronous transmit DMA usage works just fine.

    So let's just fix this chip bug up by the latter method. Tested with
    JMB381 on kernel 3.13 and 4.3.

    Since OHCI-1394 generally requires 4 IT contexts at a minium, this
    workaround is simply applied whenever the initial read of IsoXmitIntMask
    returns 0, regardless whether it's a JMicron chip or not. I never heard
    of this issue together with any other chip though.

    I am not 100% sure that this fix works on the OHCI-1394 part of JMB380
    and JMB388 combo controllers exactly the same as on the JMB381 single-
    function controller, but so far I haven't had a chance to let an owner
    of a combo chip run a patched kernel.

    Strangely enough, IsoRecvIntMask is always reported correctly, even
    though it is probed right before IsoXmitIntMask.

    Reported-by: Clifford Dunn
    Reported-by: Craig Moore
    Cc: stable@vger.kernel.org
    Signed-off-by: Stefan Richter

    Stefan Richter
     

02 Nov, 2015

5 commits

  • Linus Torvalds
     
  • Pull memremap fix from Dan Williams:
    "The new memremap() api introduced in the 4.3 cycle to unify/replace
    ioremap_cache() and ioremap_wt() is mishandling the highmem case.
    This patch has received a build success notification from a
    0day-kbuild-robot run and has received an ack from Ard"

    From the commit message:
    "The impact of this bug is low for now since the pmem driver is the
    only user of memremap(), but this is important to fix before more
    conversions to memremap arrive in 4.4"

    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    memremap: fix highmem support

    Linus Torvalds
     
  • Pull x86 fixes from Thomas Gleixner:
    "This set of updates contains:

    - Another bugfix for the pathologic vm86 machinery. Clear
    thread.vm86 on fork to prevent corrupting the parent state. This
    comes along with an update to the vm86 selftest case

    - Fix another corner case in the ioapic setup code which causes a
    boot crash on some oddball systems

    - Fix the fallout from the dma allocation consolidation work, which
    leads to a NULL pointer dereference when the allocation code is
    called with a NULL device"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/vm86: Set thread.vm86 to NULL on fork/clone
    selftests/x86: Add a fork() to entry_from_vm86 to catch fork bugs
    x86/ioapic: Prevent NULL pointer dereference in setup_ioapic_dest()
    x86/dma-mapping: Fix arch_dma_alloc_attrs() oops with NULL dev

    Linus Torvalds
     
  • Pull timer fixes from Thomas Gleixner:
    "The last round of minimalistic fixes for clocksource drivers:

    - Prevent multiple shutdown of the sh_mtu2 clocksource

    - Annotate a bunch of clocksource/schedclock functions with notrace
    to prevent an annoying ftrace recursion issue"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource/drivers/sh_mtu2: Fix multiple shutdown call issue
    clocksource/drivers/digicolor: Prevent ftrace recursion
    clocksource/drivers/fsl_ftm_timer: Prevent ftrace recursion
    clocksource/drivers/vf_pit_timer: Prevent ftrace recursion
    clocksource/drivers/prima2: Prevent ftrace recursion
    clocksource/drivers/samsung_pwm_timer: Prevent ftrace recursion
    clocksource/drivers/pistachio: Prevent ftrace recursion
    clocksource/drivers/arm_global_timer: Prevent ftrace recursion

    Linus Torvalds
     
  • Pull irq fixes from Thomas Gleixner:
    "The last two one-liners for 4.3 from the irqchip space:

    - Regression fix for armada SoC which addresses the fallout from the
    set_irq_flags() cleanup

    - Add the missing propagation of the irq_set_type() callback to the
    parent interrupt controller of the tegra interrupt chip"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip/tegra: Propagate IRQ type setting to parent
    irqchip/armada-370-xp: Fix regression by clearing IRQ_NOAUTOEN

    Linus Torvalds
     

01 Nov, 2015

7 commits

  • Pull ARM SoC fixes from Olof Johansson:
    "This should be our final batch of fixes for 4.3:

    - A patch from Sudeep Holla that fixes annotation of wakeup sources
    properly, old unused format seems to have spread through copying.

    - Two patches from Tony for OMAP. One dealing with MUSB setup
    problems due to runtime PM being enabled too early on the parent
    device. The other fixes IRQ numbering for OMAP1"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    usb: musb: omap2430: Fix regression caused by driver core change
    ARM: OMAP1: fix incorrect INT_DMA_LCD
    ARM: dts: fix gpio-keys wakeup-source property

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "This is three essential bug fixes for various SCSI parts.

    The only affected users are SCSI multi-path via device handler
    (basically all the enterprise) and mvsas users. The dh bugs are an
    async entanglement in boot resulting in a serious WARN_ON trip and a
    use after free on remove leading to a crash with strict memory
    accounting. The mvsas bug manifests as a null deref oops but only on
    abort sequences; however, these can commonly occur with SATA attached
    devices, hence the fix"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi_dh: don't try to load a device handler during async probing
    scsi_dh: fix use-after-free when removing scsi device
    mvsas: Fix NULL pointer dereference in mvs_slot_task_free

    Linus Torvalds
     
  • Pull md bug fixes from Neil Brown:
    "Two more bug fixes for md.

    One bugfix for a list corruption in raid5 because of incorrect
    locking.

    Other for possible data corruption when a recovering device is failed,
    removed, and re-added.

    Both tagged for -stable"

    * tag 'md/4.3-rc7-fixes' of git://neil.brown.name/md:
    Revert "md: allow a partially recovered device to be hot-added to an array."
    md/raid5: fix locking in handle_stripe_clean_event()

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Two drm atomic core fixes.

    And two radeon patches needed to fix a backlight regression on some
    older hardware"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm: Correct arguments to list_tail_add in create blob ioctl
    drm: crtc: integer overflow in drm_property_create_blob()
    drm/radeon: fix dpms when driver backlight control is disabled
    drm/radeon: move bl encoder assignment into bl init

    Linus Torvalds
     
  • Pull Ceph fix from Sage Weil:
    "This sets the stable pages flag on the RBD block device when we have
    CRCs enabled. (This is necessary since the default assumption for
    block devices changed in 3.9)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    rbd: require stable pages if message data CRCs are enabled

    Linus Torvalds
     
  • Pull overlayfs bug fixes from Miklos Szeredi:
    "This contains fixes for bugs that appeared in earlier kernels (all are
    marked for -stable)"

    * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    ovl: free lower_mnt array in ovl_put_super
    ovl: free stack of paths in ovl_fill_super
    ovl: fix open in stacked overlay
    ovl: fix dentry reference leak
    ovl: use O_LARGEFILE in ovl_copy_up()

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fix two regressions in ipv6 route lookups, particularly wrt output
    interface specifications in the lookup key. From David Ahern.

    2) Fix checks in ipv6 IPSEC tunnel pre-encap fragmentation, from
    Herbert Xu.

    3) Fix mis-advertisement of 1000BASE-T on bcm63xx_enet, from Simon
    Arlott.

    4) Some smsc phys misbehave with energy detect mode enabled, so add a
    DT property and disable it on such switches. From Heiko Schocher.

    5) Fix TSO corruption on TX in mv643xx_eth, from Philipp Kirchhofer.

    6) Fix regression added by removal of openvswitch vport stats, from
    James Morse.

    7) Vendor Kconfig options should be bool, not tristate, from Andreas
    Schwab.

    8) Use non-_BH() net stats bump in tcp_xmit_probe_skb(), otherwise we
    barf during TCP REPAIR operations.

    9) Fix various bugs in openvswitch conntrack support, from Joe
    Stringer.

    10) Fix NETLINK_LIST_MEMBERSHIPS locking, from David Herrmann.

    11) Don't have VSOCK do sock_put() in interrupt context, from Jorgen
    Hansen.

    12) Fix skb_realloc_headroom() failures properly in ISDN, from Karsten
    Keil.

    13) Add some device IDs to qmi_wwan, from Bjorn Mork.

    14) Fix ovs egress tunnel information when using lwtunnel devices, from
    Pravin B Shelar.

    15) Add missing NETIF_F_FRAGLIST to macvtab feature list, from Jason
    Wang.

    16) Fix incorrect handling of throw routes when the result of the throw
    cannot find a match, from Xin Long.

    17) Protect ipv6 MTU calculations from wrap-around, from Hannes Frederic
    Sowa.

    18) Fix failed autonegotiation on KSZ9031 micrel PHYs, from Nathan
    Sullivan.

    19) Add missing memory barries in descriptor accesses or xgbe driver,
    from Thomas Lendacky.

    20) Fix release conditon test in pppoe_release(), from Guillaume Nault.

    21) Fix gianfar bugs wrt filter configuration, from Claudiu Manoil.

    22) Fix violations of RX buffer alignment in sh_eth driver, from Sergei
    Shtylyov.

    23) Fixing missing of_node_put() calls in various places around the
    networking, from Julia Lawall.

    24) Fix incorrect leaf now walking in ipv4 routing tree, from Alexander
    Duyck.

    25) RDS doesn't check pskb_pull()/pskb_trim() return values, from
    Sowmini Varadhan.

    26) Fix VLAN configuration in mlx4 driver, from Jack Morgenstein.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (79 commits)
    ipv6: protect mtu calculation of wrap-around and infinite loop by rounding issues
    Revert "Merge branch 'ipv6-overflow-arith'"
    net/mlx4: Copy/set only sizeof struct mlx4_eqe bytes
    net/mlx4_en: Explicitly set no vlan tags in WQE ctrl segment when no vlan is present
    vhost: fix performance on LE hosts
    bpf: sample: define aarch64 specific registers
    amd-xgbe: Fix race between access of desc and desc index
    RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv
    forcedeth: fix unilateral interrupt disabling in netpoll path
    openvswitch: Fix skb leak using IPv6 defrag
    ipv6: Export nf_ct_frag6_consume_orig()
    openvswitch: Fix double-free on ip_defrag() errors
    fib_trie: leaf_walk_rcu should not compute key if key is less than pn->key
    net: mv643xx_eth: add missing of_node_put
    ath6kl: add missing of_node_put
    net: phy: mdio: add missing of_node_put
    netdev/phy: add missing of_node_put
    net: netcp: add missing of_node_put
    net: thunderx: add missing of_node_put
    ipv6: gre: support SIT encapsulation
    ...

    Linus Torvalds
     

31 Oct, 2015

12 commits

  • thread.vm86 points to per-task information -- the pointer should not
    be copied on clone.

    Fixes: d4ce0f26c790 ("x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86'")
    Signed-off-by: Andy Lutomirski
    Cc: Brian Gerst
    Cc: Linus Torvalds
    Cc: Borislav Petkov
    Cc: Stas Sergeev
    Link: http://lkml.kernel.org/r/71c5d6985d70ec8197c8d72f003823c81b7dcf99.1446270067.git.luto@kernel.org
    Signed-off-by: Thomas Gleixner

    Andy Lutomirski
     
  • Mere possession of vm86 state is strange. Make sure that nothing
    gets corrupted if we fork after calling vm86().

    Signed-off-by: Andy Lutomirski
    Cc: Brian Gerst
    Cc: Linus Torvalds
    Cc: Borislav Petkov
    Cc: Stas Sergeev
    Link: http://lkml.kernel.org/r/08f83295460a80e41dc5e3e81ec40d6844d316f5.1446270067.git.luto@kernel.org
    Signed-off-by: Thomas Gleixner

    Andy Lutomirski
     
  • Pull input layer fixes from Dmitry Torokhov:

    - a change to the ALPS driver where we had limit the quirk for
    trackstick handling from being active on all Dells to just a few
    models

    - a fix for a build dependency issue in the sur40 driver

    - a small clock handling fixup in the LPC32xx touchscreen driver

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: alps - only the Dell Latitude D420/430/620/630 have separate stick button bits
    Input: sur40 - add dependency on VIDEO_V4L2
    Input: lpc32xx_ts - fix warnings caused by enabling unprepared clock

    Linus Torvalds
     
  • Pull PCI fix from Bjorn Helgaas:
    "Sorry for this last-minute update; it's been in -next for quite a
    while, but I forgot about it until I started getting ready for the
    merge window.

    It's small and fixes a way a user could cause a panic via sysfs, so I
    think it's worth getting it in v4.3.

    NUMA:
    - Prevent out of bounds access in sysfs numa_node override (Sasha Levin)"

    * tag 'pci-v4.3-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: Prevent out of bounds access in numa_node override

    Linus Torvalds
     
  • …/git/tmlind/linux-omap into fixes

    Two omap regression fixes:

    - Fix omap3 MUSB with DMA caused by driver core changes

    - Fix LCD DMA interrupt number for omap1 that did not
    get changed for sparse IRQ changes

    * tag 'omap-for-v4.3/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    usb: musb: omap2430: Fix regression caused by driver core change
    ARM: OMAP1: fix incorrect INT_DMA_LCD

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • Arguments passed to list_add_tail were reversed resulting in deletion
    of old blob property everytime the new one is added.

    Fixes

    commit e2f5d2ea479b9b2619965d43db70939589afe43a
    Author: Daniel Stone
    Date: Fri May 22 13:34:51 2015 +0100

    drm/mode: Add user blob-creation ioctl

    Signed-off-by: Maneet Singh
    [seanpaul tweaked commit subject a little]
    Signed-off-by: Sean Paul
    Cc: stable@kernel.org # v4.2
    Reviewed-by: Daniel Stone
    Reviewed-by: Jani Nikula
    Signed-off-by: Dave Airlie

    Maneet Singh
     
  • This reverts commit 7eb418851f3278de67126ea0c427641ab4792c57.

    This commit is poorly justified, I can find not discusison in email,
    and it clearly causes a problem.

    If a device which is being recovered fails and is subsequently
    re-added to an array, there could easily have been changes to the
    array *before* the point where the recovery was up to. So the
    recovery must start again from the beginning.

    If a spare is being recovered and fails, then when it is re-added we
    really should do a bitmap-based recovery up to the recovery-offset,
    and then a full recovery from there. Before this reversion, we only
    did the "full recovery from there" which is not corect. After this
    reversion with will do a full recovery from the start, which is safer
    but not ideal.

    It will be left to a future patch to arrange the two different styles
    of recovery.

    Reported-and-tested-by: Nate Dailey
    Signed-off-by: NeilBrown
    Cc: stable@vger.kernel.org (3.14+)
    Fixes: 7eb418851f32 ("md: allow a partially recovered device to be hot-added to an array.")

    NeilBrown
     
  • The size here comes from the user via the ioctl, it is a number between
    1-u32max so the addition here could overflow on 32 bit systems.

    Fixes: f453ba046074 ('DRM: add mode setting support')
    Signed-off-by: Dan Carpenter
    Reviewed-by: Daniel Stone
    Cc: stable@kernel.org # v4.2
    Signed-off-by: Dave Airlie

    Dan Carpenter
     
  • Pull arm64 fixes from Will Deacon:
    "Apologies for this being so late, but we've uncovered a few nasty
    issues on arm64 which didn't settle down until yesterday and the fixes
    all look suitable for 4.3. Of the four patches, three of them are
    Cc'd to stable, with the remaining patch fixing an issue that only
    took effect during the merge window.

    Summary:

    - Fix corruption in SWP emulation when STXR fails due to contention
    - Fix MMU re-initialisation when resuming from a low-power state
    - Fix stack unwinding code to match what ftrace expects
    - Fix relocation code in the EFI stub when DRAM base is not 2MB aligned"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64/efi: do not assume DRAM base is aligned to 2 MB
    Revert "ARM64: unwind: Fix PC calculation"
    arm64: kernel: fix tcr_el1.t0sz restore on systems with extended idmap
    arm64: compat: fix stxr failure case in SWP emulation

    Linus Torvalds
     
  • Pull ia64 kcmp syscall from Tony Luck:
    "Missed adding the kcmp() syscall a long time ago. Now it seems that
    it is essential to build systemd"

    * tag 'please-pull-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    [IA64] Wire up kcmp syscall

    Linus Torvalds
     
  • After commit 566c09c53455 ("raid5: relieve lock contention in get_active_stripe()")
    __find_stripe() is called under conf->hash_locks + hash.
    But handle_stripe_clean_event() calls remove_hash() under
    conf->device_lock.

    Under some cirscumstances the hash chain can be circuited,
    and we get an infinite loop with disabled interrupts and locked hash
    lock in __find_stripe(). This leads to hard lockup on multiple CPUs
    and following system crash.

    I was able to reproduce this behavior on raid6 over 6 ssd disks.
    The devices_handle_discard_safely option should be set to enable trim
    support. The following script was used:

    for i in `seq 1 32`; do
    dd if=/dev/zero of=large$i bs=10M count=100 &
    done

    neilb: original was against a 3.x kernel. I forward-ported
    to 4.3-rc. This verison is suitable for any kernel since
    Commit: 59fc630b8b5f ("RAID5: batch adjacent full stripe write")
    (v4.1+). I'll post a version for earlier kernels to stable.

    Signed-off-by: Roman Gushchin
    Fixes: 566c09c53455 ("raid5: relieve lock contention in get_active_stripe()")
    Signed-off-by: NeilBrown
    Cc: Shaohua Li
    Cc: # 3.13 - 4.2

    Roman Gushchin
     
  • rbd requires stable pages, as it performs a crc of the page data before
    they are send to the OSDs.

    But since kernel 3.9 (patch 1d1d1a767206fbe5d4c69493b7e6d2a8d08cc0a0
    "mm: only enforce stable page writes if the backing device requires
    it") it is not assumed anymore that block devices require stable pages.

    This patch sets the necessary flag to get stable pages back for rbd.

    In a ceph installation that provides multiple ext4 formatted rbd
    devices "bad crc" messages appeared regularly (ca 1 message every 1-2
    minutes on every OSD that provided the data for the rbd) in the
    OSD-logs before this patch. After this patch this messages are pretty
    much gone (only ca 1-2 / month / OSD).

    Cc: stable@vger.kernel.org # 3.9+, needs backporting
    Signed-off-by: Ronny Hegewald
    [idryomov@gmail.com: require stable pages only in crc case, changelog]
    Signed-off-by: Ilya Dryomov

    Ronny Hegewald
     

30 Oct, 2015

2 commits

  • regression fix for backlight on old laptops.

    * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux:
    drm/radeon: fix dpms when driver backlight control is disabled
    drm/radeon: move bl encoder assignment into bl init

    Dave Airlie
     
  • The current arm64 Image relocation code in the UEFI stub assumes that
    the dram_base argument it receives is always a multiple of 2 MB. In
    reality, it is simply the lowest start address of all RAM entries in
    the UEFI memory map, which means it could be any multiple of 4 KB.

    Since the arm64 kernel Image needs to reside TEXT_OFFSET bytes beyond
    a 2 MB aligned base, or it will fail to boot, make sure we round dram_base
    to 2 MB before using it to calculate the relocation address.

    Fixes: e38457c361b30c5a ("arm64: efi: prefer AllocatePages() over efi_low_alloc() for vmlinux")
    Reported-by: Timur Tabi
    Tested-by: Timur Tabi
    Acked-by: Mark Rutland
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Will Deacon

    Ard Biesheuvel
     

29 Oct, 2015

8 commits

  • If driver backlight control is disabled, either by driver
    parameter or default per-asic setting, revert to the old behavior.

    Fixes a regression in commit:
    4281f46ef839050d2ef60348f661eb463c21cc2e

    Reviewed-by: Michel Dänzer
    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • So that the bl encoder will be null if the GPU does not
    control the backlight.

    Reviewed-by: Michel Dänzer
    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • Raw sockets with hdrincl enabled can insert ipv6 extension headers
    right into the data stream. In case we need to fragment those packets,
    we reparse the options header to find the place where we can insert
    the fragment header. If the extension headers exceed the link's MTU we
    actually cannot make progress in such a case.

    Instead of ending up in broken arithmetic or rounding towards 0 and
    entering an endless loop in ip6_fragment, just prevent those cases by
    aborting early and signal -EMSGSIZE to user space.

    This is the second version of the patch which doesn't use the
    overflow_usub function, which got reverted for now.

    Suggested-by: Linus Torvalds
    Cc: Linus Torvalds
    Reported-by: Dmitry Vyukov
    Cc: Dmitry Vyukov
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     
  • Linus dislikes these changes. To not hold up the net-merge let's revert
    it for now and fix the bug like Linus suggested.

    This reverts commit ec3661b42257d9a06cf0d318175623ac7a660113, reversing
    changes made to c80dbe04612986fd6104b4a1be21681b113b5ac9.

    Cc: Linus Torvalds
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     
  • systemd > 218 fails to compile on ia64 with:

    error: ‘__NR_kcmp’ undeclared [1].

    I've been told that this is because the kcmp syscall hasn't been wired up
    for the ia64 arch [2].

    The proposed patch thus wire up the kcmp syscall for the ia64 arch.

    [1] https://bugs.gentoo.org/show_bug.cgi?id=560492
    [2] https://bugs.gentoo.org/show_bug.cgi?id=560492#c17

    Signed-off-by: Émeric MASCHINO
    Signed-off-by: Tony Luck

    Émeric MASCHINO
     
  • Commit ddef08dd00f5 ("Driver core: wakeup the parent device before trying
    probe") started automatically ensuring the parent device is enabled when
    the child gets probed.

    This however caused a regression for MUSB omap2430 interface as the
    runtime PM for the parent device needs the child initialized to access
    the MUSB hardware registers.

    Let's delay the enabling of PM runtime for the parent until the child
    has been properly initialized as suggested in an earlier patch by
    Grygorii Strashko .

    In addition to delaying pm_runtime_enable, we now also need to make sure
    the parent is enabled during omap2430_musb_init. We also want to propagate
    an error from omap2430_runtime_resume if struct musb is not initialized.

    Note that we use pm_runtime_put_noidle here for both the child and parent
    to prevent an extra runtime_suspend/resume cycle.

    Let's also add some comments to avoid confusion between the
    two different devices.

    Fixes: ddef08dd00f5 ("Driver core: wakeup the parent device before
    trying probe")
    Suggested-by: Grygorii Strashko
    Reviewed-by: Grygorii Strashko
    Acked-by: Felipe Balbi
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     
  • This reverts commit e306dfd06fcb44d21c80acb8e5a88d55f3d1cf63.

    With this patch applied, we were the only architecture making this sort
    of adjustment to the PC calculation in the unwinder. This causes
    problems for ftrace, where the PC values are matched against the
    contents of the stack frames in the callchain and fail to match any
    records after the address adjustment.

    Whilst there has been some effort to change ftrace to workaround this,
    those patches are not yet ready for mainline and, since we're the odd
    architecture in this regard, let's just step in line with other
    architectures (like arch/arm/) for now.

    Cc:
    Signed-off-by: Will Deacon

    Will Deacon
     
  • Commit dd006da21646 ("arm64: mm: increase VA range of identity map")
    introduced a mechanism to extend the virtual memory map range
    to support arm64 systems with system RAM located at very high offset,
    where the identity mapping used to enable/disable the MMU requires
    additional translation levels to map the physical memory at an equal
    virtual offset.

    The kernel detects at boot time the tcr_el1.t0sz value required by the
    identity mapping and sets-up the tcr_el1.t0sz register field accordingly,
    any time the identity map is required in the kernel (ie when enabling the
    MMU).

    After enabling the MMU, in the cold boot path the kernel resets the
    tcr_el1.t0sz to its default value (ie the actual configuration value for
    the system virtual address space) so that after enabling the MMU the
    memory space translated by ttbr0_el1 is restored as expected.

    Commit dd006da21646 ("arm64: mm: increase VA range of identity map")
    also added code to set-up the tcr_el1.t0sz value when the kernel resumes
    from low-power states with the MMU off through cpu_resume() in order to
    effectively use the identity mapping to enable the MMU but failed to add
    the code required to restore the tcr_el1.t0sz to its default value, when
    the core returns to the kernel with the MMU enabled, so that the kernel
    might end up running with tcr_el1.t0sz value set-up for the identity
    mapping which can be lower than the value required by the actual virtual
    address space, resulting in an erroneous set-up.

    This patchs adds code in the resume path that restores the tcr_el1.t0sz
    default value upon core resume, mirroring this way the cold boot path
    behaviour therefore fixing the issue.

    Cc:
    Cc: Catalin Marinas
    Fixes: dd006da21646 ("arm64: mm: increase VA range of identity map")
    Acked-by: Ard Biesheuvel
    Signed-off-by: Lorenzo Pieralisi
    Signed-off-by: James Morse
    Signed-off-by: Will Deacon

    Lorenzo Pieralisi