linux_dsm_epyc7002/arch/parisc/include/asm
Thomas Bogendoerfer 33f9e02495 parisc: DMA API: return error instead of BUG_ON for dma ops on non dma devs
Enabling parport pc driver on a B2600 (and probably other 64bit PARISC
systems) produced following BUG:

CPU: 0 PID: 1 Comm: swapper Not tainted 4.12.0-rc5-30198-g1132d5e #156
task: 000000009e050000 task.stack: 000000009e04c000

     YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
PSW: 00001000000001101111111100001111 Not tainted
r00-03  000000ff0806ff0f 000000009e04c990 0000000040871b78 000000009e04cac0
r04-07  0000000040c14de0 ffffffffffffffff 000000009e07f098 000000009d82d200
r08-11  000000009d82d210 0000000000000378 0000000000000000 0000000040c345e0
r12-15  0000000000000005 0000000040c345e0 0000000000000000 0000000040c9d5e0
r16-19  0000000040c345e0 00000000f00001c4 00000000f00001bc 0000000000000061
r20-23  000000009e04ce28 0000000000000010 0000000000000010 0000000040b89e40
r24-27  0000000000000003 0000000000ffffff 000000009d82d210 0000000040c14de0
r28-31  0000000000000000 000000009e04ca90 000000009e04cb40 0000000000000000
sr00-03  0000000000000000 0000000000000000 0000000000000000 0000000000000000
sr04-07  0000000000000000 0000000000000000 0000000000000000 0000000000000000

IASQ: 0000000000000000 0000000000000000 IAOQ: 00000000404aece0 00000000404aece4
 IIR: 03ffe01f    ISR: 0000000010340000  IOR: 000001781304cac8
 CPU:        0   CR30: 000000009e04c000 CR31: 00000000e2976de2
 ORIG_R28: 0000000000000200
 IAOQ[0]: sba_dma_supported+0x80/0xd0
 IAOQ[1]: sba_dma_supported+0x84/0xd0
 RP(r2): parport_pc_probe_port+0x178/0x1200

Cause is a call to dma_coerce_mask_and_coherenet in parport_pc_probe_port,
which PARISC DMA API doesn't handle very nicely. This commit gives back
DMA_ERROR_CODE for DMA API calls, if device isn't capable of DMA
transaction.

Cc: <stable@vger.kernel.org> # v3.13+
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Helge Deller <deller@gmx.de>
2017-07-03 17:00:46 +02:00
..
agp.h
asm-offsets.h
asmregs.h
assembly.h parisc: Use generic extable search and sort routines 2016-03-23 16:00:46 +01:00
atomic.h locking/atomic: Remove linux/atomic.h:atomic_fetch_or() 2016-06-16 10:48:32 +02:00
bitops.h parisc: Don't use BITS_PER_LONG in userspace-exported swab.h header 2017-01-28 21:54:23 +01:00
bug.h debug: Add _ONCE() logic to report_bug() 2017-03-30 09:37:20 +02:00
bugs.h
cache.h arch: Introduce post-init read-only memory 2016-02-22 08:51:38 +01:00
cacheflush.h parisc: Optimize flush_kernel_vmap_range and invalidate_kernel_vmap_range 2017-03-15 20:57:33 +01:00
checksum.h ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short 2016-03-13 23:55:13 -04:00
cmpxchg.h parisc: Add native high-resolution sched_clock() implementation 2016-05-22 21:39:25 +02:00
compat_ucontext.h
compat.h parisc: Fix SIGSYS signals in compat case 2016-03-31 12:28:37 +02:00
delay.h parisc: make udelay() SMP-safe 2013-11-07 22:28:26 +01:00
dma-mapping.h parisc: DMA API: return error instead of BUG_ON for dma ops on non dma devs 2017-07-03 17:00:46 +02:00
dma.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
dwarf.h parisc: Add cfi_startproc and cfi_endproc to assembly code 2016-10-05 22:54:40 +02:00
eisa_bus.h
eisa_eeprom.h parisc: Fix typos in eisa_eeprom.h 2016-05-22 21:57:40 +02:00
elf.h parisc: Enable KASLR 2016-12-12 22:21:21 +01:00
fb.h
fixmap.h
floppy.h parisc: Use parentheses around expression in floppy.h 2016-03-01 22:51:04 +01:00
ftrace.h parisc: Add syscall tracepoint support 2016-05-22 21:38:47 +02:00
futex.h new helper: uaccess_kernel() 2017-03-28 16:43:25 -04:00
grfioctl.h
hardirq.h parisc: do not count IPI calls twice 2013-11-07 22:28:54 +01:00
hardware.h parisc: drop include of asm/pdc.h from asm/hardware.h 2012-05-10 15:12:08 -07:00
hash.h parisc: Add <asm/hash.h> 2016-08-02 16:44:29 +02:00
hugetlb.h parisc: Protect huge page pte changes with spinlocks 2016-01-16 19:19:14 +01:00
ide.h
io.h parisc: Don't hardcode PSW values in gsc_*() functions 2017-06-09 11:34:54 +02:00
irq.h [PARISC] Convert to new irq_chip functions 2011-02-10 10:22:14 -06:00
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
kbdleds.h keyboard: Use BIOS Keyboard variable to set Numlock 2012-05-08 14:19:41 -07:00
Kbuild kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
kmap_types.h
ldcw.h parisc: Fix typo in ldcw.h 2016-05-22 21:56:37 +02:00
led.h
linkage.h parisc: Add cfi_startproc and cfi_endproc to assembly code 2016-10-05 22:54:40 +02:00
machdep.h
mckinley.h
mmu_context.h parisc/mm: Ensure IRQs are off in switch_mm() 2017-06-09 11:31:06 +02:00
mmu.h
mmzone.h parisc: fix kernel BUG at arch/parisc/include/asm/mmzone.h:50 (part 2) 2013-06-18 20:20:21 +02:00
module.h Make most arch asm/module.h files use asm-generic/module.h 2012-09-28 14:31:03 +09:30
page.h parisc: Add defines for Huge page support 2015-11-22 12:22:34 +01:00
parisc-device.h parisc: Fix interrupt routing for C8000 serial ports 2013-07-31 23:42:32 +02:00
parport.h ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
pci.h parisc: Use generic pci_mmap_resource_range() 2017-04-20 08:47:47 -05:00
pdc_chassis.h
pdc.h parisc: Add Page Deallocation Table (PDT) support 2017-05-12 09:14:15 +02:00
pdcpat.h parisc: Add Page Deallocation Table (PDT) support 2017-05-12 09:14:15 +02:00
perf_event.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
perf.h
pgalloc.h parisc: get rid of superfluous __GFP_REPEAT 2016-06-24 17:23:52 -07:00
pgtable.h parisc: Add Page Deallocation Table (PDT) support 2017-05-12 09:14:15 +02:00
prefetch.h [PARISC] fix panic on prefetch(NULL) on PA7300LC 2012-05-16 13:15:21 +01:00
processor.h parisc: Enhance detection of synchronous cr16 clocksources 2017-05-10 17:46:14 +02:00
psw.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
ptrace.h parisc: add kernel audit feature 2013-11-07 22:27:20 +01:00
ropes.h
rt_sigframe.h
runway.h
sections.h
serial.h parisc: remove empty SERIAL_PORT_DFNS in serial.h 2013-11-30 21:02:18 +01:00
shmparam.h parisc: change value of SHMLBA from 0x00400000 to PAGE_SIZE 2014-04-13 15:00:53 +02:00
signal.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-02-23 18:50:11 -08:00
smp.h [PARISC] Fix parisc compile failure after smp: Add task_struct argument to __cpu_up() 2012-05-25 12:35:45 +01:00
socket.h parisc: break out SOCK_NONBLOCK define to own asm header file 2013-11-19 23:36:17 +01:00
special_insns.h parisc: optimize mtsp(0,sr) inline assembly 2013-07-09 22:09:21 +02:00
spinlock_types.h
spinlock.h locking/spinlock, arch: Update and fix spin_unlock_wait() implementations 2016-06-14 11:55:15 +02:00
string.h
superio.h
switch_to.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
syscall.h parisc: Add syscall tracepoint support 2016-05-22 21:38:47 +02:00
termios.h UAPI: (Scripted) Disintegrate arch/parisc/include/asm 2012-10-16 21:28:05 +01:00
thread_info.h parisc: Drop TIF_RESTORE_SIGMASK and switch to generic code 2016-12-29 21:52:36 +01:00
timex.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
tlb.h
tlbflush.h parisc: Fix some PTE/TLB race conditions and optimize __flush_tlb_range based on timing results 2015-07-10 21:47:47 +02:00
traps.h parisc: Show trap name in kernel crash 2016-10-11 20:52:47 +02:00
uaccess.h parisc: Drop per_cpu uaccess related exception_data struct 2017-05-10 17:46:13 +02:00
ucontext.h
unaligned.h
unistd.h sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
unwind.h