[ 549.462631] EIP is at snd_pcm_info+0x2f/0x110 [snd_pcm]
In the kernel git:
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 25
EXTRAVERSION = -rc8
I found in sound/core/pcm_native.c:
int snd_pcm_info(struct snd_pcm_substream *substream, struct snd_pcm_info *info)
{
struct snd_pcm_runtime *runtime;
struct snd_pcm *pcm = substream->pcm; /* Here we are using substream
already, uups */
struct snd_pcm_str *pstr = substream->pstr; /* Here too */
snd_assert(substream != NULL, return -ENXIO); /* doing the assert here
is too late, I think.
in our case it probably does not matter
because the calling function checks
the parameters fine. */
/* I wonder which pointer is NULL: substream->pcm, substream->pstr ;-)
*/
memset(info, 0, sizeof(*info));
info->card = pcm->card->number;
info->device = pcm->device;
info->stream = substream->stream;
info->subdevice = substream->number;
strlcpy(info->id, pcm->id, sizeof(info->id));
strlcpy(info->name, pcm->name, sizeof(info->name));
info->dev_class = pcm->dev_class;
info->dev_subclass = pcm->dev_subclass;
info->subdevices_count = pstr->substream_count;
info->subdevices_avail = pstr->substream_count - pstr->substream_opened;
strlcpy(info->subname, substream->name, sizeof(info->subname));
runtime = substream->runtime;
/* AB: FIXME!!! This is definitely nonsense */
if (runtime) {
info->sync = runtime->sync;
substream->ops->ioctl(substream, SNDRV_PCM_IOCTL1_INFO, info);
}
return 0;
}
static void snd_pcm_proc_info_read(struct snd_pcm_substream *substream,
struct snd_info_buffer *buffer)
{
struct snd_pcm_info *info;
int err;
if (! substream)
return;
info = kmalloc(sizeof(*info), GFP_KERNEL);
if (! info) {
printk(KERN_DEBUG "snd_pcm_proc_info_read: cannot malloc\n");
return;
}
/* Here it is sufficiently made sure that both parameters, substream and info
are fine.
So I believe some of pointers within substream are not yet properly
initialized. */
err = snd_pcm_info(substream, info);
if (err < 0) {
snd_iprintf(buffer, "error %d\n", err);
kfree(info);
return;
}
...
}
Can someone explain to me how one can build an experimental Ubuntu
kernel quickest, without reading all documentation? Maybe we can add
some printks to give more precise bug-report information? Or where can I
find the kernel elf file so that I could do an addrtoline?
--
Hardy: Kernel Oopses in sound driver
https://bugs.launchpad.net/bugs/212226
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs