alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* Use of copy_to_user in fireworks_hwdep.c while holding a spin_lock
@ 2016-08-19  6:06 Vaishali Thakkar
  0 siblings, 0 replies; 3+ messages in thread
From: Vaishali Thakkar @ 2016-08-19  6:06 UTC (permalink / raw)
  To: Clemens Ladisch, Jaroslav Kysela, Takashi Iwai, alsa-devel,
	linux-kernel, Takashi Sakamoto, Julia Lawall

Hello,

I was wondering about the call to copy_to_user in function hwdep_read_locked and
hwdep_read_resp_buf for driver sound/firewire/fireworks/fireworks_hwdep.c. 
The function hwdep_read calls both of these functions while holding a spinlock[1],
which is not normally allowed due to the possibility of a deadlock.

This seems to be coming from the commit 555e8a8f7f149544eb7d4aa3a6420bc4c3055638
while adding a command/response functionality into hwdep interface. Is there some
reason that I am overlooking, why it is OK in this case? Is there some code in the
same file which ensures that page fault will not occur when we are calling these
functions while holding a spin_lock_irq?

The same issue is there with the driver sound/firewire/tascam/tascam-hwdep.c for
obvious reasons.

Coccinelle script is used to detect this issue.

Thank you.

[1] http://lxr.free-electrons.com/source/sound/firewire/fireworks/fireworks_hwdep.c#L114

-- 
Vaishali

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Use of copy_to_user in fireworks_hwdep.c while holding a spin_lock
@ 2016-08-19  6:24 Vaishali Thakkar
  2016-08-19 13:24 ` Takashi Sakamoto
  0 siblings, 1 reply; 3+ messages in thread
From: Vaishali Thakkar @ 2016-08-19  6:24 UTC (permalink / raw)
  To: Clemens Ladisch, Jaroslav Kysela, Takashi Iwai, Takashi Sakamoto,
	alsa-devel, linux-kernel, Julia Lawall


Hello,

I was wondering about the call to copy_to_user in function hwdep_read_locked and
hwdep_read_resp_buf for driver sound/firewire/fireworks/fireworks_hwdep.c. 
The function hwdep_read calls both of these functions while holding a spinlock[1],
which is not normally allowed due to the possibility of a deadlock.

This seems to be coming from the commit 555e8a8f7f149544eb7d4aa3a6420bc4c3055638
while adding a command/response functionality into hwdep interface. Is there some
reason that I am overlooking, why it is OK in this case? Is there some code in the
same file which ensures that page fault will not occur when we are calling these
functions while holding a spin_lock_irq?

The same issue is there with the driver sound/firewire/tascam/tascam-hwdep.c for
obvious reasons.

Coccinelle script is used to detect this issue.

Thank you.

[1] http://lxr.free-electrons.com/source/sound/firewire/fireworks/fireworks_hwdep.c#L114

-- 
Vaishali

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Use of copy_to_user in fireworks_hwdep.c while holding a spin_lock
  2016-08-19  6:24 Vaishali Thakkar
@ 2016-08-19 13:24 ` Takashi Sakamoto
  0 siblings, 0 replies; 3+ messages in thread
From: Takashi Sakamoto @ 2016-08-19 13:24 UTC (permalink / raw)
  To: Vaishali Thakkar, Clemens Ladisch, Jaroslav Kysela, Takashi Iwai,
	alsa-devel, linux-kernel, Julia Lawall

Hi,

On Aug 19 2016 15:24, Vaishali Thakkar wrote:
> I was wondering about the call to copy_to_user in function hwdep_read_locked and
> hwdep_read_resp_buf for driver sound/firewire/fireworks/fireworks_hwdep.c. 
> The function hwdep_read calls both of these functions while holding a spinlock[1],
> which is not normally allowed due to the possibility of a deadlock.
> 
> This seems to be coming from the commit 555e8a8f7f149544eb7d4aa3a6420bc4c3055638
> while adding a command/response functionality into hwdep interface. Is there some
> reason that I am overlooking, why it is OK in this case? Is there some code in the
> same file which ensures that page fault will not occur when we are calling these
> functions while holding a spin_lock_irq?
> 
> The same issue is there with the driver sound/firewire/tascam/tascam-hwdep.c for
> obvious reasons.
> 
> Coccinelle script is used to detect this issue.
> 
> Thank you.
> 
> [1] http://lxr.free-electrons.com/source/sound/firewire/fireworks/fireworks_hwdep.c#L114

Indeed, I was unaware of the situation in which deadlock occurs; i.e.
page fault.

I'm on short summer vacation, so will post patches for them in next week.


Thanks

Takashi Sakamoto

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-08-19 13:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-19  6:06 Use of copy_to_user in fireworks_hwdep.c while holding a spin_lock Vaishali Thakkar
  -- strict thread matches above, loose matches on Subject: below --
2016-08-19  6:24 Vaishali Thakkar
2016-08-19 13:24 ` Takashi Sakamoto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).