Red Hat Bugzilla – Bug 216961
[PATCH] No sound--ALSA audio drivers fail to load on boot of kernel-xen
Last modified: 2009-12-14 15:40:07 EST
Description of problem:
When Linux boots from kernel-xen (domain-0) the ice1712.o soundcard module does
not load properly and gives an error of:
architecture does not support 28bit PCI bus master DMA
The result is the /dev/timer and /dev/seq devices are available but there is no
/dev/pcm* and thus no sound. There are numerous other ALSA cards that will
probably also fail with this message, but I haven't tested them.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install kernel-xen
2. Reboot and select the xen kernel from the GRUB menu.
3. Run 'dmesg' to view the error described above.
4. Run 'speaker-test'.
A patch to the kernel sources is attached that seems to remedy the problem. It
works by eliminating the early fail-return of the soundcard driver's calls to
pci_set_dma_mask() and pci_set_consistent_dma_mask(). This leaves the dma_mask
its pci driver undefined. Furthermore, the pci driver code is changed in
several places so that if dma_mask is undefined, the default dma_mask to use
will be 28 bits instead of 32 bits. This suits the ice1712 driver fine, but its
impact on other drivers who do not set the dma_mask is unknown. You have been
The included patch fixes the ice1712 code only. If you have a different sound
card needing a 28 bit dma_mask then you need to search out and comment out the
early-return yourself in its driver source. Good luck.
Created attachment 141945 [details]
[PATCH] To enable sound in kernel-xen.
Please don't attach gzipped patches, it's much easier to browse then uncompressed.
But anyway, this isn't a proper fix --- it's going to have all sorts of problems
for other drivers. The right fix is probably going to have to be within
swiotlb, and I just happen to have been looking at another driver (networking
this time) which has similar trouble.
Can you please try an alternative patch? Look at
linux/arch/i386/kernel/swiotlb.c, and change
#define IO_TLB_DMA_BITS 31
#define IO_TLB_DMA_BITS 28
near the top. (The same file should be used for both i386 and x86_64 builds.)
Does that help? Thanks.
Created attachment 144878 [details]
Alternate fix to enable sound in kernel-xen (x86_64). Possibly safer than prior.
That the dma_supported code works at all is a bit of a miracle. This
quasi-patch may illustrate the deficiency.
change QA contact
Having a similar problem, fc8, kernel 22.214.171.124-115.fc8. Audio drivers only load
about half the time. Also, even when it works, the usb webcam audio (mic)
driver sometimes fails to show up in the administrative soundcard detection
window, but does show up in the hardware sound preferences menu and does work.
Symptoms vary; system is apparently unstable, at least from an audio standpoint.
Let me know if you'd like any files. One of my recent dmesg's can be found as an
attachment to bug# 432258.
This message is a reminder that Fedora 8 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 8. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora
'version' of '8'.
Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version prior to Fedora 8's end of life.
Bug Reporter: Thank you for reporting this issue and we are sorry that
we may not be able to fix it before Fedora 8 is end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora please change the 'version' of this
bug to the applicable version. If you are unable to change the version,
please add a comment here and someone will do it for you.
Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.
The process we are following is described here:
Fedora 8 changed to end-of-life (EOL) status on 2009-01-07. Fedora 8 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.
If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version.
Thank you for reporting this bug and we are sorry it could not be fixed.