Change in kernel config between 4.4-rc7 and 4.4-rc8 breaks PC parallel port DMA

Bug #1536813 reported by Mark
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Triaged
Medium
Unassigned

Bug Description

When testing mainline kernels from http://kernel.ubuntu.com/~kernel-ppa/mainline/ I noticed a problem which first appears with the 4.4-rc8 kernel package.

I opened a bug on the kernel bugzilla a few days ago, see https://bugzilla.kernel.org/show_bug.cgi?id=110931
See that for details about the issue.

But I think the actual cause is a change in the Ubuntu kernel config. CONFIG_ZONE_DMA not being set breaks PC parallel port DMA.

$ diff config-4.4.0-040400rc7-generic config-4.4.0-040400rc8-generic
...
393c393
< CONFIG_ZONE_DMA=y
---
> # CONFIG_ZONE_DMA is not set
517,518c517
< CONFIG_ZONE_DMA_FLAG=1
< CONFIG_BOUNCE=y
---
> CONFIG_ZONE_DMA_FLAG=0
545a545
> CONFIG_ZONE_DEVICE=y
...

Googling CONFIG_ZONE_DMA gave: "DMA memory allocation support allows devices with less than 32-bit addressing to allocate within the first 16MB of address space. Disable if no such devices will be used."

With the kernel-ppa 4.4-rc8 package I get this dmesg output:

[ 1.910959] parport_pc 00:06: reported by Plug and Play ACPI
[ 1.911139] parport0: PC-style at 0x378 (0x778), irq 7, dma 1 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA]
[ 1.912394] hwdev DMA mask = 0x0000000000ffffff, dev_addr = 0x00000000dbe5b000
[ 1.912476] swiotlb: coherent allocation failed for device 00:06 size=4096
[ 1.912552] CPU: 1 PID: 222 Comm: systemd-modules Not tainted 4.4.0-040400-generic #201601101930
[ 1.912645] Hardware name: Dell Inc. Latitude D830 /0HN338, BIOS A17 06/19/2013
[ 1.912745] 0000000000000000 00000000273b115d ffff8800db0d79a8 ffffffff813c8d94
[ 1.913120] 0000000000ffffff ffff8800db0d79e8 ffffffff813f1e91 00000000dbe5b000
[ 1.913489] 00000000024002c1 ffff880000039800 0000000000001000 ffff8800362f6de0
[ 1.913854] Call Trace:
[ 1.913942] [<ffffffff813c8d94>] dump_stack+0x44/0x60
[ 1.914029] [<ffffffff813f1e91>] swiotlb_alloc_coherent+0x141/0x150
[ 1.914117] [<ffffffff81062503>] x86_swiotlb_alloc_coherent+0x43/0x50
[ 1.914206] [<ffffffffc00d9745>] parport_pc_probe_port+0x9b5/0x1190 [parport_pc]
[ 1.914308] [<ffffffff8152498c>] ? _dev_info+0x6c/0x90
[ 1.914396] [<ffffffffc00da2e3>] parport_pc_pnp_probe+0x143/0x1e0 [parport_pc]
[ 1.914496] [<ffffffffc00da1a0>] ? parport_pc_pci_probe+0x280/0x280 [parport_pc]
[ 1.914595] [<ffffffff81497911>] pnp_device_probe+0x61/0xc0
[ 1.914680] [<ffffffff81528a82>] driver_probe_device+0x222/0x4a0
[ 1.914768] [<ffffffff81528d84>] __driver_attach+0x84/0x90
[ 1.914857] [<ffffffff81528d00>] ? driver_probe_device+0x4a0/0x4a0
[ 1.914945] [<ffffffff815266ac>] bus_for_each_dev+0x6c/0xc0
[ 1.915031] [<ffffffff8152823e>] driver_attach+0x1e/0x20
[ 1.915117] [<ffffffff81527d7b>] bus_add_driver+0x1eb/0x280
[ 1.915201] [<ffffffff81529620>] driver_register+0x60/0xe0
[ 1.915287] [<ffffffff81497750>] pnp_register_driver+0x20/0x30
[ 1.915374] [<ffffffffc006c38e>] parport_pc_init+0x2b1/0xf23 [parport_pc]
[ 1.915462] [<ffffffffc006c0dd>] ? parport_parse_param.constprop.18+0xdd/0xdd [parport_pc]
[ 1.915561] [<ffffffff81002123>] do_one_initcall+0xb3/0x200
[ 1.915646] [<ffffffff811c91f1>] ? __vunmap+0x91/0xe0
[ 1.915733] [<ffffffff811e52eb>] ? kmem_cache_alloc_trace+0x16b/0x1d0
[ 1.915821] [<ffffffff811e6055>] ? kfree+0x115/0x130
[ 1.915908] [<ffffffff81186d13>] do_init_module+0x5f/0x1e5
[ 1.915995] [<ffffffff8110565b>] load_module+0x160b/0x1b80
[ 1.916082] [<ffffffff811018b0>] ? __symbol_put+0x60/0x60
[ 1.916154] [<ffffffff8120bee0>] ? kernel_read+0x50/0x80
[ 1.916237] [<ffffffff81105e19>] SyS_finit_module+0xb9/0xf0
[ 1.916317] [<ffffffff817fd9b6>] entry_SYSCALL_64_fastpath+0x16/0x75
[ 1.916409] parport0: cannot get buffer for DMA, resorting to PIO operation
[ 2.004194] lp0: using parport0 (interrupt-driven).

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1536813

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Incomplete → Triaged
tags: added: kernel-bug-exists-upstream xenial
Revision history for this message
Mark (mark-k) wrote :

Looks like bug 1534647, "Collateral damage due to kernel configuration change enabling CONFIG_ZONE_DEVICE (Kernel 4.4 amd64)" covers the same issue. There a sound card stopped working.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.