03 Aug, 2015

2 commits

  • Pull powerpc fixes from Michael Ellerman:
    - TCE table memory calculation fix from Alexey
    - Build fix for ans-lcd from Luis
    - Unbalanced IRQ warning fix from Alistair

    * tag 'powerpc-4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    powerpc/eeh-powernv: Fix unbalanced IRQ warning
    macintosh/ans-lcd: fix build failure after module_init/exit relocation
    powerpc/powernv/ioda2: Fix calculation for memory allocated for TCE table

    Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "Things are calming down nicely here w.r.t. fixes. This batch
    includes two week's worth since I missed to send before -rc4.

    Nothing particularly scary to point out, smaller fixes here and there.
    Shortlog describes it pretty well"

    * tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: dts: keystone: fix dt bindings to use post div register for mainpll
    ARM: nomadik: disable UART0 on Nomadik boards
    ARM: dts: i.MX35: Fix can support.
    ARM: OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc
    ARM: dts: add CPU OPP and regulator supply property for exynos4210
    ARM: dts: Update video-phy node with syscon phandle for exynos3250
    ARM: DRA7: hwmod: fix gpmc hwmod

    Linus Torvalds
     

02 Aug, 2015

2 commits

  • Pull dmaengine fixes from Vinod Koul:
    "We had a regression due to reuse of descriptor so we have reverted
    that.

    The rest are driver fixes:

    - at_hdmac and at_xdmac for residue, trannfer width, and channel config
    - pl330 final fix for dma fails and overflow issue
    - xgene resouce map fix
    - mv_xor big endian op fix"

    * tag 'dmaengine-fix-4.2-rc5' of git://git.infradead.org/users/vkoul/slave-dma:
    Revert "dmaengine: virt-dma: don't always free descriptor upon completion"
    dmaengine: mv_xor: fix big endian operation in register mode
    dmaengine: xgene-dma: Fix the resource map to handle overlapping
    dmaengine: at_xdmac: fix transfer data width in at_xdmac_prep_slave_sg()
    dmaengine: at_hdmac: fix residue computation
    dmaengine: at_xdmac: fix bug about channel configuration
    dmaengine: pl330: Really fix choppy sound because of wrong residue calculation
    dmaengine: pl330: Fix overflow when reporting residue in memcpy

    Linus Torvalds
     
  • Pull x86 fixes from Ingo Molnar:
    "Fallout from the recent NMI fixes: make x86 LDT handling more robust.

    Also some EFI fixes"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/ldt: Make modify_ldt synchronous
    x86/xen: Probe target addresses in set_aliased_prot() before the hypercall
    x86/irq: Use the caller provided polarity setting in mp_check_pin_attr()
    efi: Check for NULL efi kernel parameters
    x86/efi: Use all 64 bit of efi_memmap in setup_e820()

    Linus Torvalds
     

01 Aug, 2015

2 commits

  • Pull networking fixes from David Miller:

    1) Must teardown SR-IOV before unregistering netdev in igb driver, from
    Alex Williamson.

    2) Fix ipv6 route unreachable crash in IPVS, from Alex Gartrell.

    3) Default route selection in ipv4 should take the prefix length, table
    ID, and TOS into account, from Julian Anastasov.

    4) sch_plug must have a reset method in order to purge all buffered
    packets when the qdisc is reset, likewise for sch_choke, from WANG
    Cong.

    5) Fix deadlock and races in slave_changelink/br_setport in bridging.
    From Nikolay Aleksandrov.

    6) mlx4 bug fixes (wrong index in port even propagation to VFs,
    overzealous BUG_ON assertion, etc.) from Ido Shamay, Jack
    Morgenstein, and Or Gerlitz.

    7) Turn off klog message about SCTP userspace interface compat that
    makes no sense at all, from Daniel Borkmann.

    8) Fix unbounded restarts of inet frag eviction process, causing NMI
    watchdog soft lockup messages, from Florian Westphal.

    9) Suspend/resume fixes for r8152 from Hayes Wang.

    10) Fix busy loop when MSG_WAITALL|MSG_PEEK is used in TCP recv, from
    Sabrina Dubroca.

    11) Fix performance regression when removing a lot of routes from the
    ipv4 routing tables, from Alexander Duyck.

    12) Fix device leak in AF_PACKET, from Lars Westerhoff.

    13) AF_PACKET also has a header length comparison bug due to signedness,
    from Alexander Drozdov.

    14) Fix bug in EBPF tail call generation on x86, from Daniel Borkmann.

    15) Memory leaks, TSO stats, watchdog timeout and other fixes to
    thunderx driver from Sunil Goutham and Thanneeru Srinivasulu.

    16) act_bpf can leak memory when replacing programs, from Daniel
    Borkmann.

    17) WOL packet fixes in gianfar driver, from Claudiu Manoil.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (79 commits)
    stmmac: fix missing MODULE_LICENSE in stmmac_platform
    gianfar: Enable device wakeup when appropriate
    gianfar: Fix suspend/resume for wol magic packet
    gianfar: Fix warning when CONFIG_PM off
    act_pedit: check binding before calling tcf_hash_release()
    net: sk_clone_lock() should only do get_net() if the parent is not a kernel socket
    net: sched: fix refcount imbalance in actions
    r8152: reset device when tx timeout
    r8152: add pre_reset and post_reset
    qlcnic: Fix corruption while copying
    act_bpf: fix memory leaks when replacing bpf programs
    net: thunderx: Fix for crash while BGX teardown
    net: thunderx: Add PCI driver shutdown routine
    net: thunderx: Fix crash when changing rss with mutliple traffic flows
    net: thunderx: Set watchdog timeout value
    net: thunderx: Wakeup TXQ only if CQE_TX are processed
    net: thunderx: Suppress alloc_pages() failure warnings
    net: thunderx: Fix TSO packet statistic
    net: thunderx: Fix memory leak when changing queue count
    net: thunderx: Fix RQ_DROP miscalculation
    ...

    Linus Torvalds
     
  • All of the keystone devices have a separate register to hold post
    divider value for main pll clock. Currently the fixed-postdiv
    value used for k2hk/l/e SoCs works by sheer luck as u-boot happens to
    use a value of 2 for this. Now that we have fixed this in the pll
    clock driver change the dt bindings for the same.

    Signed-off-by: Murali Karicheri
    Acked-by: Santosh Shilimkar
    Signed-off-by: Olof Johansson

    Murali Karicheri
     

31 Jul, 2015

7 commits

  • There is an overlap in dma ring cmd csr region due to sharing of ethernet
    ring cmd csr region. This patch fix the resource overlapping by mapping
    the entire dma ring cmd csr region.

    Signed-off-by: Rameshwar Prasad Sahu
    Signed-off-by: Vinod Koul

    Rameshwar Prasad Sahu
     
  • modify_ldt() has questionable locking and does not synchronize
    threads. Improve it: redesign the locking and synchronize all
    threads' LDTs using an IPI on all modifications.

    This will dramatically slow down modify_ldt in multithreaded
    programs, but there shouldn't be any multithreaded programs that
    care about modify_ldt's performance in the first place.

    This fixes some fallout from the CVE-2015-5157 fixes.

    Signed-off-by: Andy Lutomirski
    Reviewed-by: Borislav Petkov
    Cc: Andrew Cooper
    Cc: Andy Lutomirski
    Cc: Boris Ostrovsky
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Jan Beulich
    Cc: Konrad Rzeszutek Wilk
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Sasha Levin
    Cc: Steven Rostedt
    Cc: Thomas Gleixner
    Cc: security@kernel.org
    Cc:
    Cc: xen-devel
    Link: http://lkml.kernel.org/r/4c6978476782160600471bd865b318db34c7b628.1438291540.git.luto@kernel.org
    Signed-off-by: Ingo Molnar

    Andy Lutomirski
     
  • The update_va_mapping hypercall can fail if the VA isn't present
    in the guest's page tables. Under certain loads, this can
    result in an OOPS when the target address is in unpopulated vmap
    space.

    While we're at it, add comments to help explain what's going on.

    This isn't a great long-term fix. This code should probably be
    changed to use something like set_memory_ro.

    Signed-off-by: Andy Lutomirski
    Cc: Andrew Cooper
    Cc: Andy Lutomirski
    Cc: Boris Ostrovsky
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: David Vrabel
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Jan Beulich
    Cc: Konrad Rzeszutek Wilk
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Sasha Levin
    Cc: Steven Rostedt
    Cc: Thomas Gleixner
    Cc: security@kernel.org
    Cc:
    Cc: xen-devel
    Link: http://lkml.kernel.org/r/0b0e55b995cda11e7829f140b833ef932fcabe3a.1438291540.git.luto@kernel.org
    Signed-off-by: Ingo Molnar

    Andy Lutomirski
     
  • Pull EFI fixes from Matt Fleming:

    * Fix an EFI boot issue preventing a Parallels virtual machine from
    booting because the upper 32-bits of the EFI memmap pointer were
    being discarded in setup_e820(). (Dmitry Skorodumov)

    * Validate that the "efi" kernel parameter gets used with an argument,
    otherwise we will oops. (Ricardo Neri)

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Commit d32932d02e18 ("x86/irq: Convert IOAPIC to use hierarchical
    irqdomain interfaces") introduced a regression which causes
    malfunction of interrupt lines.

    The reason is that the conversion of mp_check_pin_attr() missed to
    update the polarity selection of the interrupt pin with the caller
    provided setting and instead uses a stale attribute value. That in
    turn results in chosing the wrong interrupt flow handler.

    Use the caller supplied setting to configure the pin correctly which
    also choses the correct interrupt flow handler.

    This restores the original behaviour and on the affected
    machine/driver (Surface Pro 3, i2c controller) all IOAPIC IRQ
    configuration are identical to v4.1.

    Fixes: d32932d02e18 ("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces")
    Reported-and-tested-by: Matt Fleming
    Reported-and-tested-by: Chen Yu
    Signed-off-by: Jiang Liu
    Cc: Tony Luck
    Cc: Chen Yu
    Cc: Yinghai Lu
    Link: http://lkml.kernel.org/r/1438242695-23531-1-git-send-email-jiang.liu@linux.intel.com
    Signed-off-by: Thomas Gleixner

    Jiang Liu
     
  • Even though it is documented how to specifiy efi parameters, it is
    possible to cause a kernel panic due to a dereference of a NULL pointer when
    parsing such parameters if "efi" alone is given:

    PANIC: early exception 0e rip 10:ffffffff812fb361 error 0 cr2 0
    [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.2.0-rc1+ #450
    [ 0.000000] ffffffff81fe20a9 ffffffff81e03d50 ffffffff8184bb0f 00000000000003f8
    [ 0.000000] 0000000000000000 ffffffff81e03e08 ffffffff81f371a1 64656c62616e6520
    [ 0.000000] 0000000000000069 000000000000005f 0000000000000000 0000000000000000
    [ 0.000000] Call Trace:
    [ 0.000000] [] dump_stack+0x45/0x57
    [ 0.000000] [] early_idt_handler_common+0x81/0xae
    [ 0.000000] [] ? parse_option_str+0x11/0x90
    [ 0.000000] [] arch_parse_efi_cmdline+0x15/0x42
    [ 0.000000] [] do_early_param+0x50/0x8a
    [ 0.000000] [] parse_args+0x1e3/0x400
    [ 0.000000] [] parse_early_options+0x24/0x28
    [ 0.000000] [] ? loglevel+0x31/0x31
    [ 0.000000] [] parse_early_param+0x31/0x3d
    [ 0.000000] [] setup_arch+0x2de/0xc08
    [ 0.000000] [] ? vprintk_default+0x1a/0x20
    [ 0.000000] [] start_kernel+0x90/0x423
    [ 0.000000] [] x86_64_start_reservations+0x2a/0x2c
    [ 0.000000] [] x86_64_start_kernel+0xeb/0xef
    [ 0.000000] RIP 0xffffffff81ba2efc

    This panic is not reproducible with "efi=" as this will result in a non-NULL
    zero-length string.

    Thus, verify that the pointer to the parameter string is not NULL. This is
    consistent with other parameter-parsing functions which check for NULL pointers.

    Signed-off-by: Ricardo Neri
    Cc: Dave Young
    Cc:
    Signed-off-by: Matt Fleming

    Ricardo Neri
     
  • The efi_info structure stores low 32 bits of memory map
    in efi_memmap and high 32 bits in efi_memmap_hi.

    While constructing pointer in the setup_e820(), need
    to take into account all 64 bit of the pointer.

    It is because on 64bit machine the function
    efi_get_memory_map() may return full 64bit pointer and before
    the patch that pointer was truncated.

    The issue is triggered on Parallles virtual machine and
    fixed with this patch.

    Signed-off-by: Dmitry Skorodumov
    Cc: Denis V. Lunev
    Cc:
    Signed-off-by: Matt Fleming

    Dmitry Skorodumov
     

30 Jul, 2015

3 commits

  • pnv_eeh_next_error() re-enables the eeh opal event interrupt but it
    gets called from a loop if there are more outstanding events to
    process, resulting in a warning due to enabling an already enabled
    interrupt. Instead the interrupt should only be re-enabled once the
    last outstanding event has been processed.

    Tested-by: Daniel Axtens
    Reported-by: Daniel Axtens
    Signed-off-by: Alistair Popple
    Acked-by: Gavin Shan
    Signed-off-by: Michael Ellerman

    Alistair Popple
     
  • With eBPF JIT compiler enabled on x86_64, I was able to reliably trigger
    the following general protection fault out of an eBPF program with a simple
    tail call, f.e. tracex5 (or a stripped down version of it):

    [ 927.097918] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
    [...]
    [ 927.100870] task: ffff8801f228b780 ti: ffff880016a64000 task.ti: ffff880016a64000
    [ 927.102096] RIP: 0010:[] [] 0xffffffffa002440d
    [ 927.103390] RSP: 0018:ffff880016a67a68 EFLAGS: 00010006
    [ 927.104683] RAX: 5a5a5a5a5a5a5a5a RBX: 0000000000000000 RCX: 0000000000000001
    [ 927.105921] RDX: 0000000000000000 RSI: ffff88014e438000 RDI: ffff880016a67e00
    [ 927.107137] RBP: ffff880016a67c90 R08: 0000000000000000 R09: 0000000000000001
    [ 927.108351] R10: 0000000000000000 R11: 0000000000000000 R12: ffff880016a67e00
    [ 927.109567] R13: 0000000000000000 R14: ffff88026500e460 R15: ffff880220a81520
    [ 927.110787] FS: 00007fe7d5c1f740(0000) GS:ffff880265000000(0000) knlGS:0000000000000000
    [ 927.112021] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 927.113255] CR2: 0000003e7bbb91a0 CR3: 000000006e04b000 CR4: 00000000001407e0
    [ 927.114500] Stack:
    [ 927.115737] ffffc90008cdb000 ffff880016a67e00 ffff88026500e460 ffff880220a81520
    [ 927.117005] 0000000100000000 000000000000001b ffff880016a67aa8 ffffffff8106c548
    [ 927.118276] 00007ffcdaf22e58 0000000000000000 0000000000000000 ffff880016a67ff0
    [ 927.119543] Call Trace:
    [ 927.120797] [] ? lookup_address+0x28/0x30
    [ 927.122058] [] ? __module_text_address+0x16/0x70
    [ 927.123314] [] ? is_ftrace_trampoline+0x3e/0x70
    [ 927.124562] [] ? __kernel_text_address+0x5f/0x80
    [ 927.125806] [] ? print_context_stack+0x7f/0xf0
    [ 927.127033] [] ? __lock_acquire+0x572/0x2050
    [ 927.128254] [] ? __lock_acquire+0x572/0x2050
    [ 927.129461] [] ? trace_call_bpf+0x3a/0x140
    [ 927.130654] [] trace_call_bpf+0x8a/0x140
    [ 927.131837] [] ? trace_call_bpf+0x3a/0x140
    [ 927.133015] [] kprobe_perf_func+0x28/0x220
    [ 927.134195] [] kprobe_dispatcher+0x38/0x60
    [ 927.135367] [] ? seccomp_phase1+0x1/0x230
    [ 927.136523] [] kprobe_ftrace_handler+0xf0/0x150
    [ 927.137666] [] ? seccomp_phase1+0x5/0x230
    [ 927.138802] [] ftrace_ops_recurs_func+0x5c/0xb0
    [ 927.139934] [] 0xffffffffa022b0d5
    [ 927.141066] [] ? seccomp_phase1+0x1/0x230
    [ 927.142199] [] seccomp_phase1+0x5/0x230
    [ 927.143323] [] syscall_trace_enter_phase1+0xc4/0x150
    [ 927.144450] [] ? seccomp_phase1+0x5/0x230
    [ 927.145572] [] ? syscall_trace_enter_phase1+0xc4/0x150
    [ 927.146666] [] tracesys+0xd/0x44
    [ 927.147723] Code: 48 8b 46 10 48 39 d0 76 2c 8b 85 fc fd ff ff 83 f8 20 77 21 83
    c0 01 89 85 fc fd ff ff 48 8d 44 d6 80 48 8b 00 48 83 f8 00 74
    0a 8b 40 20 48 83 c0 33 ff e0 48 89 d8 48 8b 9d d8 fd ff
    ff 4c
    [ 927.150046] RIP [] 0xffffffffa002440d

    The code section with the instructions that traps points into the eBPF JIT
    image of the root program (the one invoking the tail call instruction).

    Using bpf_jit_disasm -o on the eBPF root program image:

    [...]
    4e: mov -0x204(%rbp),%eax
    8b 85 fc fd ff ff
    54: cmp $0x20,%eax MAX_TAIL_CALL_CNT)
    83 f8 20
    57: ja 0x000000000000007a
    77 21
    59: add $0x1,%eax prog[index]
    48 8d 44 d6 80
    67: mov (%rax),%rax
    48 8b 00
    6a: cmp $0x0,%rax 8b 40 20 ... from above ]
    74: add $0x33,%rax prog[index]
    48 8d 84 d0 80 00 00 00
    c90: add $0x1,%r13d
    41 83 c5 01
    c94: mov (%rax),%rax
    48 8b 00
    [...]

    Now the other interesting fact is that this panic triggers only when things
    like CONFIG_LOCKDEP are being used. In that case offsetof(struct bpf_array,
    prog) starts at offset 0x80 and in non-CONFIG_LOCKDEP case at offset 0x50.
    Reason is that the work_struct inside struct bpf_map grows by 48 bytes in my
    case due to the lockdep_map member (which also has CONFIG_LOCK_STAT enabled
    members).

    Changing the emitter to always use the 4 byte displacement in the lea
    instruction fixes the panic on my side. It increases the tail call instruction
    emission by 3 more byte, but it should cover us from various combinations
    (and perhaps other future increases on related structures).

    After patch, disassembly:

    [...]
    9e: lea 0x80(%rsi,%rdx,8),%rax
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • Pull s390 fixes from Martin Schwidefsky:
    "Two bug fixes:

    - fix a crash on pre-z10 hardware due to cache-info

    - fix an issue with classic BPF programs in the eBPF JIT"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/cachinfo: add missing facility check to init_cache_level()
    s390/bpf: clear correct BPF accumulator register

    Linus Torvalds
     

29 Jul, 2015

1 commit


28 Jul, 2015

3 commits

  • …wnguo/linux into fixes

    The i.MX fixes for 4.2, 2nd round:
    - Add the required second clock for i.MX35 FlexCAN in device tree,
    so that the device can be probed by kernel successfully.

    * tag 'imx-fixes-4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
    ARM: dts: i.MX35: Fix can support.

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

    Olof Johansson
     
  • Stephen Powell reported the following crash on a z890 machine:

    Kernel BUG at 00000000001219d0 [verbose debug info unavailable]
    illegal operation: 0001 ilc:3 [#1] SMP
    Krnl PSW : 0704e00180000000 00000000001219d0 (init_cache_level+0x38/0xe0)
    R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 EA:3
    Krnl Code: 00000000001219c2: a7840056 brc 8,121a6e
    00000000001219c6: a7190000 lghi %r1,0
    #00000000001219ca: eb101000004c ecag %r1,%r0,0(%r1)
    >00000000001219d0: a7390000 lghi %r3,0
    00000000001219d4: e310f0a00024 stg %r1,160(%r15)
    00000000001219da: a7080000 lhi %r0,0
    00000000001219de: a7b9f000 lghi %r11,-4096
    00000000001219e2: c0a0002899d9 larl %r10,634d94
    Call Trace:
    [] detect_cache_attributes+0x2a/0x2b8
    [] cacheinfo_sysfs_init+0x60/0xc8
    [] do_one_initcall+0x98/0x1c8
    [] kernel_init_freeable+0x212/0x2d8
    [] kernel_init+0x26/0x118
    [] kernel_thread_starter+0x6/0xc

    The illegal operation was executed because of a missing facility check,
    which should have made sure that the ECAG execution would only be executed
    on machines which have the general-instructions-extension facility
    installed.

    Reported-and-tested-by: Stephen Powell
    Cc: stable@vger.kernel.org # v4.0+
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • At boot, the UTF-16 UEFI vendor string is copied from the system
    table into a char array with a size of 100 bytes. However, this
    size of 100 bytes is also used for memremapping() the source,
    which may not be sufficient if the vendor string exceeds 50
    UTF-16 characters, and the placement of the vendor string inside
    a 4 KB page happens to leave the end unmapped.

    So use the correct '100 * sizeof(efi_char16_t)' for the size of
    the mapping.

    Signed-off-by: Ard Biesheuvel
    Fixes: f84d02755f5a ("arm64: add EFI runtime services")
    Cc: # 3.16+
    Signed-off-by: Catalin Marinas

    Ard Biesheuvel
     

27 Jul, 2015

6 commits

  • Since NULL is used as valid clock object on optional clocks we have to handle
    this case in avr32 implementation as well.

    Fixes: e1824dfe0d8e (net: macb: Adjust tx_clk when link speed changes)
    Signed-off-by: Andy Shevchenko
    Acked-by: Hans-Christian Egtvedt

    Andy Shevchenko
     
  • Currently we assumed the following BPF to eBPF register mapping:

    - BPF_REG_A -> BPF_REG_7
    - BPF_REG_X -> BPF_REG_8

    Unfortunately this mapping is wrong. The correct mapping is:

    - BPF_REG_A -> BPF_REG_0
    - BPF_REG_X -> BPF_REG_7

    So clear the correct registers and use the BPF_REG_A and BPF_REG_X
    macros instead of BPF_REG_0/7.

    Fixes: 054623105728 ("s390/bpf: Add s390x eBPF JIT compiler backend")
    Cc: stable@vger.kernel.org # 4.0+
    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky

    Michael Holzheu
     
  • The UART0 is not used on these boards, yet active and blocking
    other use. Fix this by disabling UART0 and setting port aliases
    to maintain port enumeration to userspace.

    Signed-off-by: Linus Walleij
    Signed-off-by: Olof Johansson

    Linus Walleij
     
  • …l/git/pjw/omap-pending into fixes

    Merge "ARM: OMAP2+: hwmod fixes for v4.2-rc" from Paul Walmsley:

    ARM: OMAP2+: hwmod fixes for v4.2-rc

    Two fixes against v4.2-rc1. The first, for DRA7xx platforms,
    corrects some incorrect GPMC hardware description data. The
    second one will ensure that the hwmod code will wait for any
    module with CPU-accessible registers to become ready before
    attempting to access it.

    Basic build, boot, and PM test logs are available here:

    http://www.pwsan.com/omap/testlogs/omap-hwmod-a-for-v4.2-rc/20150723065408/

    Note that I do not have a DRA7xx or AM43xx board, and therefore
    cannot test on those platforms.

    * tag 'for-v4.2-rc/omap-fixes-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending:
    ARM: OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc
    ARM: DRA7: hwmod: fix gpmc hwmod

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

    Olof Johansson
     
  • Pull perf fix from Thomas Gleixner:
    "A single fix for the intel cqm perf facility to prevent IPIs from
    interrupt context"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86/intel/cqm: Return cached counter value from IRQ context

    Linus Torvalds
     
  • Pull x86 fixes from Thomas Gleixner:
    "This update contains:

    - the manual revert of the SYSCALL32 changes which caused a
    regression

    - a fix for the MPX vma handling

    - three fixes for the ioremap 'is ram' checks.

    - PAT warning fixes

    - a trivial fix for the size calculation of TLB tracepoints

    - handle old EFI structures gracefully

    This also contains a PAT fix from Jan plus a revert thereof. Toshi
    explained why the code is correct"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mm/pat: Revert 'Adjust default caching mode translation tables'
    x86/asm/entry/32: Revert 'Do not use R9 in SYSCALL32' commit
    x86/mm: Fix newly introduced printk format warnings
    mm: Fix bugs in region_is_ram()
    x86/mm: Remove region_is_ram() call from ioremap
    x86/mm: Move warning from __ioremap_check_ram() to the call site
    x86/mm/pat, drivers/media/ivtv: Move the PAT warning and replace WARN() with pr_warn()
    x86/mm/pat, drivers/infiniband/ipath: Replace WARN() with pr_warn()
    x86/mm/pat: Adjust default caching mode translation tables
    x86/fpu: Disable dependent CPU features on "noxsave"
    x86/mpx: Do not set ->vm_ops on MPX VMAs
    x86/mm: Add parenthesis for TLB tracepoint size calculation
    efi: Handle memory error structures produced based on old versions of standard

    Linus Torvalds
     

26 Jul, 2015

3 commits

  • Toshi explains:

    "No, the default values need to be set to the fallback types,
    i.e. minimal supported mode. For WC and WT, UC is the fallback type.

    When PAT is disabled, pat_init() does update the tables below to
    enable WT per the default BIOS setup. However, when PAT is enabled,
    but CPU has PAT -errata, WT falls back to UC per the default values."

    Revert: ca1fec58bc6a 'x86/mm/pat: Adjust default caching mode translation tables'
    Requested-by: Toshi Kani
    Cc: Jan Beulich
    Link: http://lkml.kernel.org/r/1437577776.3214.252.camel@hp.com
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Peter reported the following potential crash which I was able to
    reproduce with his test program,

    [ 148.765788] ------------[ cut here ]------------
    [ 148.765796] WARNING: CPU: 34 PID: 2840 at kernel/smp.c:417 smp_call_function_many+0xb6/0x260()
    [ 148.765797] Modules linked in:
    [ 148.765800] CPU: 34 PID: 2840 Comm: perf Not tainted 4.2.0-rc1+ #4
    [ 148.765803] ffffffff81cdc398 ffff88085f105950 ffffffff818bdfd5 0000000000000007
    [ 148.765805] 0000000000000000 ffff88085f105990 ffffffff810e413a 0000000000000000
    [ 148.765807] ffffffff82301080 0000000000000022 ffffffff8107f640 ffffffff8107f640
    [ 148.765809] Call Trace:
    [ 148.765810] [] dump_stack+0x45/0x57
    [ 148.765818] [] warn_slowpath_common+0x8a/0xc0
    [ 148.765822] [] ? intel_cqm_stable+0x60/0x60
    [ 148.765824] [] ? intel_cqm_stable+0x60/0x60
    [ 148.765825] [] warn_slowpath_null+0x1a/0x20
    [ 148.765827] [] smp_call_function_many+0xb6/0x260
    [ 148.765829] [] ? intel_cqm_stable+0x60/0x60
    [ 148.765831] [] on_each_cpu_mask+0x28/0x60
    [ 148.765832] [] intel_cqm_event_count+0x7f/0xe0
    [ 148.765836] [] perf_output_read+0x2a5/0x400
    [ 148.765839] [] perf_output_sample+0x31a/0x590
    [ 148.765840] [] ? perf_prepare_sample+0x26d/0x380
    [ 148.765841] [] perf_event_output+0x47/0x60
    [ 148.765843] [] __perf_event_overflow+0x215/0x240
    [ 148.765844] [] perf_event_overflow+0x14/0x20
    [ 148.765847] [] intel_pmu_handle_irq+0x1d4/0x440
    [ 148.765849] [] ? __perf_event_task_sched_in+0x36/0xa0
    [ 148.765853] [] ? vunmap_page_range+0x19d/0x2f0
    [ 148.765854] [] ? unmap_kernel_range_noflush+0x11/0x20
    [ 148.765859] [] ? ghes_copy_tofrom_phys+0x11e/0x2a0
    [ 148.765863] [] ? native_apic_msr_write+0x2b/0x30
    [ 148.765865] [] ? x2apic_send_IPI_self+0x1d/0x20
    [ 148.765869] [] ? arch_irq_work_raise+0x35/0x40
    [ 148.765872] [] ? irq_work_queue+0x66/0x80
    [ 148.765875] [] perf_event_nmi_handler+0x26/0x40
    [ 148.765877] [] nmi_handle+0x79/0x100
    [ 148.765879] [] default_do_nmi+0x42/0x100
    [ 148.765880] [] do_nmi+0x83/0xb0
    [ 148.765884] [] end_repeat_nmi+0x1e/0x2e
    [ 148.765886] [] ? __perf_event_task_sched_in+0x36/0xa0
    [ 148.765888] [] ? __perf_event_task_sched_in+0x36/0xa0
    [ 148.765890] [] ? __perf_event_task_sched_in+0x36/0xa0
    [ 148.765891] <> [] finish_task_switch+0x156/0x210
    [ 148.765898] [] __schedule+0x341/0x920
    [ 148.765899] [] schedule+0x37/0x80
    [ 148.765903] [] ? do_page_fault+0x2f/0x80
    [ 148.765905] [] schedule_user+0x1a/0x50
    [ 148.765907] [] retint_careful+0x14/0x32
    [ 148.765908] ---[ end trace e33ff2be78e14901 ]---

    The CQM task events are not safe to be called from within interrupt
    context because they require performing an IPI to read the counter value
    on all sockets. And performing IPIs from within IRQ context is a
    "no-no".

    Make do with the last read counter value currently event in
    event->count when we're invoked in this context.

    Reported-by: Peter Zijlstra
    Signed-off-by: Matt Fleming
    Cc: Thomas Gleixner
    Cc: Vikas Shivappa
    Cc: Kanaka Juvva
    Cc: Will Auld
    Cc:
    Link: http://lkml.kernel.org/r/1437490509-15373-1-git-send-email-matt@codeblueprint.co.uk
    Signed-off-by: Thomas Gleixner

    Matt Fleming
     
  • Pull tty/serial driver fixes from Greg KH:
    "Here are a number of small serial and tty fixes for reported issues.

    All have been in linux-next successfully"

    * tag 'tty-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: vt: Fix !TASK_RUNNING diagnostic warning from paste_selection()
    serial: core: Fix crashes while echoing when closing
    m32r: Add ioreadXX/iowriteXX big-endian mmio accessors
    Revert "serial: imx: initialized DMA w/o HW flow enabled"
    sc16is7xx: fix FIFO address of secondary UART
    sc16is7xx: fix Kconfig dependencies
    serial: etraxfs-uart: Fix release etraxfs_uart_ports
    tty/vt: Fix the memory leak in visual_init
    serial: amba-pl011: Fix devm_ioremap_resource return value check
    n_tty: signal and flush atomically

    Linus Torvalds
     

25 Jul, 2015

3 commits

  • Since commit 3d42a379b6fa5b46058e3302b1802b29f64865bb
    ("can: flexcan: add 2nd clock to support imx53 and newer")
    the can driver requires a dt nodes to have a second clock.
    Add them to imx35 to fix probing the flex can driver on the
    respective platforms.

    Signed-off-by: Denis Carikli
    Cc:
    Signed-off-by: Shawn Guo

    Denis Carikli
     
  • Pull MMC fixes from Ulf Hansson:
    "Here are some mmc fixes intended for v4.2 rc4.

    Note, most of the changes are for the sdhci-esdhc-imx controller,
    which also required us to modify some related DTS files. Those
    changes have been acked by the SoC maintainer.

    MMC core:
    - Fix a reference inbalance issue for power_ro_lock_show() sysfs handler

    MMC host:
    - omap_hsmmc: Fix IRQ errorhandling for CD, DTO, and CRC
    - sdhci: Prevent a kernel panic while using DMA
    - mtk-sd: Let it depend on HAS_DMA to prevent build errors
    - sdhci-esdhc: Make 8BIT bus work
    - sdhci-esdhc-imx: Fix some regressions for DT based platforms
    - sdhci-pxav3: Fix a regression for DT based platforms"

    * tag 'mmc-4.2-rc3' of git://git.linaro.org/people/ulf.hansson/mmc:
    mmc: sdhci-pxav3: fix platform_data is not initialized
    dts: mmc: fsl-imx-esdhc: remove fsl,cd-controller support
    mmc: sdhci-esdhc-imx: clear f_max in boarddata
    mmc: sdhci-esdhc-imx: remove duplicated dts parsing
    mmc: sdhci: make max-frequency property in device tree work
    mmc: sdhci-esdhc-imx: move all non dt probe code into one function
    mmc: sdhci-esdhc-imx: fix cd regression for dt platform
    dts: imx7: fix sd card gpio polarity specified in device tree
    dts: imx25: fix sd card gpio polarity specified in device tree
    dts: imx6: fix sd card gpio polarity specified in device tree
    dts: imx53: fix sd card gpio polarity specified in device tree
    dts: imx51: fix sd card gpio polarity specified in device tree
    mmc: sdhci-esdhc: Make 8BIT bus work
    mmc: block: Add missing mmc_blk_put() in power_ro_lock_show()
    mmc: MMC_MTK should depend on HAS_DMA
    mmc: sdhci check parameters before call dma_free_coherent
    mmc: omap_hsmmc: Handle BADA, DEB and CEB interrupts
    mmc: omap_hsmmc: Fix DTO and DCRC handling

    Linus Torvalds
     
  • Pull arch/tile bugfix from Chris Metcalf:
    "This fixes a bug in freeing the initramfs memory"

    * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    tile: use free_bootmem_late() for initrd

    Linus Torvalds
     

24 Jul, 2015

8 commits

  • This change reverts most of commit 53e9accf0f 'Do not use R9 in
    SYSCALL32'. I don't yet understand how, but code in that commit
    sometimes fails to preserve EBP.

    See https://bugzilla.kernel.org/show_bug.cgi?id=101061
    "Problems while executing 32-bit code on AMD64"

    Reported-and-tested-by: Krzysztof A. Sobiecki
    Signed-off-by: Denys Vlasenko
    Cc: Linus Torvalds
    Cc: Steven Rostedt
    Cc: Borislav Petkov
    Cc: Andy Lutomirski
    Cc: Oleg Nesterov
    Cc: Frederic Weisbecker
    Cc: Alexei Starovoitov
    Cc: Will Drewry
    Cc: Kees Cook
    CC: x86@kernel.org
    Link: http://lkml.kernel.org/r/1437740203-11552-1-git-send-email-dvlasenk@redhat.com
    Signed-off-by: Thomas Gleixner

    Denys Vlasenko
     
  • Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios
    should be changed to GPIO_ACTIVE_HIGH.
    Otherwise, the SD may not work properly due to wrong polarity inversion
    specified in DT after switch to common parsing function mmc_of_parse().

    Signed-off-by: Dong Aisheng
    Acked-by: Shawn Guo
    Signed-off-by: Ulf Hansson

    Dong Aisheng
     
  • cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios
    should be changed to GPIO_ACTIVE_HIGH.
    Otherwise, the SD may not work properly due to wrong polarity inversion
    specified in DT after switch to common parsing function mmc_of_parse().

    Signed-off-by: Dong Aisheng
    Acked-by: Shawn Guo
    Signed-off-by: Ulf Hansson

    Dong Aisheng
     
  • cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios
    should be changed to GPIO_ACTIVE_HIGH.
    Otherwise, the SD may not work properly due to wrong polarity inversion
    specified in DT after switch to common parsing function mmc_of_parse().

    Signed-off-by: Dong Aisheng
    Acked-by: Shawn Guo
    Signed-off-by: Ulf Hansson

    Dong Aisheng
     
  • cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios
    should be changed to GPIO_ACTIVE_HIGH.
    Otherwise, the SD may not work properly due to wrong polarity inversion
    specified in DT after switch to common parsing function mmc_of_parse().

    Signed-off-by: Dong Aisheng
    Acked-by: Shawn Guo
    Signed-off-by: Ulf Hansson

    Dong Aisheng
     
  • cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios
    should be changed to GPIO_ACTIVE_HIGH.
    Otherwise, the SD may not work properly due to wrong polarity inversion
    specified in DT after switch to common parsing function mmc_of_parse().

    Signed-off-by: Dong Aisheng
    Acked-by: Shawn Guo
    Signed-off-by: Ulf Hansson

    Dong Aisheng
     
  • commit c627f2ceb692 ("serial: 8250: Add support for big-endian MMIO accesses")
    added support for 32-bit big-endian mmio to the 8250 driver. Support for
    ioreadXXbe/iowriteXXbe io accessors was missing from m32r arch, which caused
    build errors.

    Add trivial macro mmio accessors.

    Reported-by: Fengguang Wu
    Cc: Kevin Cernekee
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley