staging: most: sound: call snd_card_new with struct device
authorChristian Gromm <christian.gromm@microchip.com>
Tue, 8 May 2018 09:45:04 +0000 (11:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 May 2018 11:41:50 +0000 (13:41 +0200)
This patch is needed as function snd_card_new needs a valid
parent device. Passing a NULL pointer leads to kernel Ooops.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/most/core.h
drivers/staging/most/sound/sound.c
drivers/staging/most/usb/usb.c

index 7a3c70b..64cc02f 100644 (file)
@@ -230,6 +230,7 @@ struct mbo {
  */
 struct most_interface {
        struct device dev;
+       struct device *driver_dev;
        struct module *mod;
        enum most_interface_type interface;
        const char *description;
index 18f7224..04c1832 100644 (file)
@@ -590,7 +590,7 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id,
        if (ret < 0)
                return ret;
 
-       ret = snd_card_new(NULL, -1, card_name, THIS_MODULE,
+       ret = snd_card_new(&iface->dev, -1, card_name, THIS_MODULE,
                           sizeof(*channel), &card);
        if (ret < 0)
                return ret;
index 5ed1dcc..f187260 100644 (file)
@@ -1043,6 +1043,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
        mdev->link_stat_timer.expires = jiffies + (2 * HZ);
 
        mdev->iface.mod = hdm_usb_fops.owner;
+       mdev->iface.driver_dev = &interface->dev;
        mdev->iface.interface = ITYPE_USB;
        mdev->iface.configure = hdm_configure_channel;
        mdev->iface.request_netinfo = hdm_request_netinfo;