Loading sound/core/timer.c +24 −18 Original line number Diff line number Diff line Loading @@ -251,6 +251,10 @@ int snd_timer_open(snd_timer_instance_t **ti, } down(®ister_mutex); timeri = snd_timer_instance_new(owner, NULL); if (!timeri) { up(®ister_mutex); return -ENOMEM; } timeri->slave_class = tid->dev_sclass; timeri->slave_id = tid->device; timeri->flags |= SNDRV_TIMER_IFLG_SLAVE; Loading @@ -272,27 +276,29 @@ int snd_timer_open(snd_timer_instance_t **ti, timer = snd_timer_find(tid); } #endif if (timer) { if (!timer) { up(®ister_mutex); return -ENODEV; } if (!list_empty(&timer->open_list_head)) { timeri = (snd_timer_instance_t *)list_entry(timer->open_list_head.next, snd_timer_instance_t, open_list); timeri = list_entry(timer->open_list_head.next, snd_timer_instance_t, open_list); if (timeri->flags & SNDRV_TIMER_IFLG_EXCLUSIVE) { up(®ister_mutex); return -EBUSY; } } timeri = snd_timer_instance_new(owner, timer); if (timeri) { if (!timeri) { up(®ister_mutex); return -ENOMEM; } timeri->slave_class = tid->dev_sclass; timeri->slave_id = slave_id; if (list_empty(&timer->open_list_head) && timer->hw.open) timer->hw.open(timer); list_add_tail(&timeri->open_list, &timer->open_list_head); snd_timer_check_master(timeri); } } else { up(®ister_mutex); return -ENODEV; } up(®ister_mutex); *ti = timeri; return 0; Loading Loading
sound/core/timer.c +24 −18 Original line number Diff line number Diff line Loading @@ -251,6 +251,10 @@ int snd_timer_open(snd_timer_instance_t **ti, } down(®ister_mutex); timeri = snd_timer_instance_new(owner, NULL); if (!timeri) { up(®ister_mutex); return -ENOMEM; } timeri->slave_class = tid->dev_sclass; timeri->slave_id = tid->device; timeri->flags |= SNDRV_TIMER_IFLG_SLAVE; Loading @@ -272,27 +276,29 @@ int snd_timer_open(snd_timer_instance_t **ti, timer = snd_timer_find(tid); } #endif if (timer) { if (!timer) { up(®ister_mutex); return -ENODEV; } if (!list_empty(&timer->open_list_head)) { timeri = (snd_timer_instance_t *)list_entry(timer->open_list_head.next, snd_timer_instance_t, open_list); timeri = list_entry(timer->open_list_head.next, snd_timer_instance_t, open_list); if (timeri->flags & SNDRV_TIMER_IFLG_EXCLUSIVE) { up(®ister_mutex); return -EBUSY; } } timeri = snd_timer_instance_new(owner, timer); if (timeri) { if (!timeri) { up(®ister_mutex); return -ENOMEM; } timeri->slave_class = tid->dev_sclass; timeri->slave_id = slave_id; if (list_empty(&timer->open_list_head) && timer->hw.open) timer->hw.open(timer); list_add_tail(&timeri->open_list, &timer->open_list_head); snd_timer_check_master(timeri); } } else { up(®ister_mutex); return -ENODEV; } up(®ister_mutex); *ti = timeri; return 0; Loading