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 -
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
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 -
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()
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
... -
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
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 -
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 -
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 -
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
-
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 -
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 0xffffffff81ba2efcThis 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 -
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
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 -
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 [] 0xffffffffa002440dThe 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 -
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
29 Jul, 2015
1 commit
-
Pull arm64 fix from Catalin Marinas:
"Fix buffer overflow when UTF-16 UEFI vendor string is copied from the
system table into a char array with a size of 100 bytes"* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64/efi: map the entire UEFI vendor string before reading it
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>
-
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/0xcThe 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 -
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
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 -
Currently we assumed the following BPF to eBPF register mapping:
- BPF_REG_A -> BPF_REG_7
- BPF_REG_X -> BPF_REG_8Unfortunately this mapping is wrong. The correct mapping is:
- BPF_REG_A -> BPF_REG_0
- BPF_REG_X -> BPF_REG_7So 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 -
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 -
…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 hwmodSigned-off-by: Olof Johansson <olof@lixom.net>
-
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 -
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
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 -
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 -
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
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 -
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 handlerMMC 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 -
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
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 -
Signed-off-by: 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 -
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 -
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 -
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 -
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 -
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