Re: [PATCH v2] Bluetooth: vhci, fix open_timeout vs. hdev race

From: Jiri Slaby
Date: Tue Mar 22 2016 - 11:52:28 EST


On 03/22/2016, 03:00 PM, Takashi Iwai wrote:
> int main()
> {
> int i;
> long fd;
> pthread_t th[32];
>
> fd = open("/dev/vhci", O_RDWR);
> if (fd < 0)
> err(1, "open");
> for (i = 0; i < 32; i++)
> pthread_create(&th[i], 0, test, (void*)fd);
> for (i = 0; i < 32; i++)
> pthread_join(th[i], NULL);
> return 0;
> }
> ================================================================
>
> For fixing these, we need a proper mutex protection. A patch like
> below seems helping, at least for the test case above.

I didn't fix this and kept it simple as I believe concurrent accesses
from a single opener are not allowed by design. But if we want to
support this, we of course need locking like this.

Anyway, I would appreciate any input from the BT fellows. There are more
races like this, apparently.

thanks,
--
js
suse labs