Hello.

Judging by the code of cypress_m8.c some functions are considered to be capable of working concurrently with other functions, e.g. cypress_open. There are, however, entities that are protected by the locks at one place and not protected in another. Lines are given using the info from Linux kernel v4.12. Example:

cypress_send
  spin_lock_irqsave
  priv->write_urb_in_use = 1;
  spin_lock_irqrestore
  (cypress_m8.c: lines 761-763)
  ...
  if (result) {
     priv->write_urb_in_use = 0; //without lock protection
     (cypress_m8.c: line 783)
  }

Is it a bug?

Thank you for your time.

-- Anton Volkov
Linux Verification Center, ISPRAS
web: http://linuxtesting.org
e-mail: avol...@ispras.ru

Reply via email to