[alsa-devel] Strange code in

Pete Zaitcev zaitcev at redhat.com
Sat Apr 21 00:26:38 CEST 2007


Dear Takashi:

Hans de Goede (on cc:) hits a problem when snd-usb-audio breaks with:
"USB device is in the shutdown state, cannot create a card instance".

This is how the place looks:

	chip = NULL;
	for (i = 0; i < SNDRV_CARDS; i++) {
		if (usb_chip[i] && usb_chip[i]->dev == dev) {
			if (usb_chip[i]->shutdown) {
				snd_printk(KERN_ERR "USB device is in the shutdown state, cannot create a card instance\n");
				goto __error;
			}
			chip = usb_chip[i];
			break;
		}
	}

The code looks broken to me, because dev at this time is a new device
structure, freshly allocated. You cannot compare it with an old instance,
and I don't know why you would want to.

Unfortunately (for fortunately), I have zero clue about the way ALSA
works, specifically rules for snd_device_ops.dev_free, so I am asking
you to look at this problem.

Yours,
-- Pete


More information about the Alsa-devel mailing list