usbehci: avoid kproc() while holding poll lock

This commit is contained in:
cinap_lenrek 2020-05-24 02:11:37 +02:00
parent a54804ed24
commit 3869d7a843

View file

@ -2278,12 +2278,15 @@ pollcheck(Hci *hp)
if(poll->must != 0 && poll->does == 0){ if(poll->must != 0 && poll->does == 0){
lock(poll); lock(poll);
if(poll->must != 0 && poll->does == 0){ if(poll->must == 0 || poll->does != 0) {
poll->does++; unlock(poll);
print("ehci %#p: polling\n", ctlr->capio); return;
kproc("ehcipoll", ehcipoll, hp);
} }
poll->does++;
unlock(poll); unlock(poll);
print("ehci %#p: polling\n", ctlr->capio);
kproc("ehcipoll", ehcipoll, hp);
} }
} }