Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Jan 2009 11:18:48 -0800
From:      Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
To:        "freebsd-bluetooth@freebsd.org" <freebsd-bluetooth@freebsd.org>
Subject:   ng_ubt2 patch for stalled transfers
Message-ID:  <bb4a86c70901231118m79037ff1pfa12d50b0305cddd@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--000e0cd296c02e5fde04612b42d8
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

dear freebsd-bluetooth@ users,

it has been brought to my attention that recently committed ng_ubt2
(USB2) driver for bluetooth usb dongles may have issues with stalled
transfers. if you are experiencing stalled transfers and crashes with
USB2/ng_ubt2 please try the attached patch and let me know if it makes
it better. the patch probably will not fix stalled transfers, but at
least the system should not be crashing anymore (or so i hope :)

if you are using USB2/ng_usb2 and do not experience stalled transfers,
please try the patch anyway. it should not make any difference, but
i'd like to get as much testing as i can.

thanks,
max

--000e0cd296c02e5fde04612b42d8
Content-Type: text/plain; charset=US-ASCII; name="ng_ubt2.stall.diff.txt"
Content-Disposition: attachment; filename="ng_ubt2.stall.diff.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fqb8k5jn0

SW5kZXg6IG5nX3VidDIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBuZ191YnQyLmMJKHJldmlzaW9uIDE4NzUw
NSkKKysrIG5nX3VidDIuYwkod29ya2luZyBjb3B5KQpAQCAtMjQzLDEzICsyNDMsMTEgQEAKIC8q
IFVTQiBtZXRob2RzICovCiBzdGF0aWMgdXNiMl9jYWxsYmFja190CXVidF9jdHJsX3dyaXRlX2Nh
bGxiYWNrOwogc3RhdGljIHVzYjJfY2FsbGJhY2tfdAl1YnRfaW50cl9yZWFkX2NhbGxiYWNrOwot
c3RhdGljIHVzYjJfY2FsbGJhY2tfdAl1YnRfaW50cl9yZWFkX2NsZWFyX3N0YWxsX2NhbGxiYWNr
Owogc3RhdGljIHVzYjJfY2FsbGJhY2tfdAl1YnRfYnVsa19yZWFkX2NhbGxiYWNrOwotc3RhdGlj
IHVzYjJfY2FsbGJhY2tfdAl1YnRfYnVsa19yZWFkX2NsZWFyX3N0YWxsX2NhbGxiYWNrOwogc3Rh
dGljIHVzYjJfY2FsbGJhY2tfdAl1YnRfYnVsa193cml0ZV9jYWxsYmFjazsKLXN0YXRpYyB1c2Iy
X2NhbGxiYWNrX3QJdWJ0X2J1bGtfd3JpdGVfY2xlYXJfc3RhbGxfY2FsbGJhY2s7CiBzdGF0aWMg
dXNiMl9jYWxsYmFja190CXVidF9pc29jX3JlYWRfY2FsbGJhY2s7CiBzdGF0aWMgdXNiMl9jYWxs
YmFja190CXVidF9pc29jX3dyaXRlX2NhbGxiYWNrOworc3RhdGljIHVzYjJfY2FsbGJhY2tfdAl1
YnRfY2xlYXJfc3RhbGxfY2FsbGJhY2s7CiAKIHN0YXRpYyBpbnQJdWJ0X2lzb2NfcmVhZF9vbmVf
ZnJhbWUoc3RydWN0IHVzYjJfeGZlciAqLCBpbnQpOwogCkBAIC0zMTYsNyArMzE0LDcgQEAKIAkJ
LmVuZHBvaW50ID0JMHgwMCwJLyogY29udHJvbCBwaXBlICovCiAJCS5kaXJlY3Rpb24gPQlVRV9E
SVJfQU5ZLAogCQkubWguYnVmc2l6ZSA9CXNpemVvZihzdHJ1Y3QgdXNiMl9kZXZpY2VfcmVxdWVz
dCksCi0JCS5taC5jYWxsYmFjayA9CSZ1YnRfYnVsa193cml0ZV9jbGVhcl9zdGFsbF9jYWxsYmFj
aywKKwkJLm1oLmNhbGxiYWNrID0JJnVidF9jbGVhcl9zdGFsbF9jYWxsYmFjaywKIAkJLm1oLnRp
bWVvdXQgPQkxMDAwLAkvKiAxIHNlY29uZCAqLwogCQkubWguaW50ZXJ2YWwgPQk1MCwJLyogNTBt
cyAqLwogCX0sCkBAIC0zMjYsNyArMzI0LDcgQEAKIAkJLmVuZHBvaW50ID0JMHgwMCwJLyogY29u
dHJvbCBwaXBlICovCiAJCS5kaXJlY3Rpb24gPQlVRV9ESVJfQU5ZLAogCQkubWguYnVmc2l6ZSA9
CXNpemVvZihzdHJ1Y3QgdXNiMl9kZXZpY2VfcmVxdWVzdCksCi0JCS5taC5jYWxsYmFjayA9CSZ1
YnRfYnVsa19yZWFkX2NsZWFyX3N0YWxsX2NhbGxiYWNrLAorCQkubWguY2FsbGJhY2sgPQkmdWJ0
X2NsZWFyX3N0YWxsX2NhbGxiYWNrLAogCQkubWgudGltZW91dCA9CTEwMDAsCS8qIDEgc2Vjb25k
ICovCiAJCS5taC5pbnRlcnZhbCA9CTUwLAkvKiA1MG1zICovCiAJfSwKQEAgLTMzOSw3ICszMzcs
NyBAQAogCQkuZW5kcG9pbnQgPQkweDAwLAkvKiBjb250cm9sIHBpcGUgKi8KIAkJLmRpcmVjdGlv
biA9CVVFX0RJUl9BTlksCiAJCS5taC5idWZzaXplID0Jc2l6ZW9mKHN0cnVjdCB1c2IyX2Rldmlj
ZV9yZXF1ZXN0KSwKLQkJLm1oLmNhbGxiYWNrID0JJnVidF9pbnRyX3JlYWRfY2xlYXJfc3RhbGxf
Y2FsbGJhY2ssCisJCS5taC5jYWxsYmFjayA9CSZ1YnRfY2xlYXJfc3RhbGxfY2FsbGJhY2ssCiAJ
CS5taC50aW1lb3V0ID0JMTAwMCwJLyogMSBzZWNvbmQgKi8KIAkJLm1oLmludGVydmFsID0JNTAs
CS8qIDUwbXMgKi8KIAl9LApAQCAtNjIzLDYgKzYyMSw5IEBACiAJCW5nX3Jtbm9kZV9zZWxmKG5v
ZGUpOwogCX0KIAorCS8qIE1ha2Ugc3VyZSB1YnRfdGFzayBpbiBnb25lICovCisJdGFza3F1ZXVl
X2RyYWluKHRhc2txdWV1ZV9zd2ksICZzYy0+c2NfdGFzayk7CisKIAkvKiBGcmVlIFVTQiB0cmFu
c2ZlcnMsIGlmIGFueSAqLwogCXVzYjJfdHJhbnNmZXJfdW5zZXR1cChzYy0+c2NfeGZlciwgVUJU
X05fVFJBTlNGRVIpOwogCkBAIC04NDMsMzUgKzg0NCw2IEBACiB9IC8qIHVidF9pbnRyX3JlYWRf
Y2FsbGJhY2sgKi8KIAogLyoKLSAqIENhbGxlZCB3aGVuIG91dGdvaW5nIGNvbnRyb2wgdHJhbnNm
ZXIgaW5pdGlhdGVkIHRvIGNsZWFyIHN0YWxsIG9uCi0gKiBpbnRlcnJ1cHQgcGlwZSBoYXMgY29t
cGxldGVkLgotICogVVNCIGNvbnRleHQuCi0gKi8KLQotc3RhdGljIHZvaWQKLXVidF9pbnRyX3Jl
YWRfY2xlYXJfc3RhbGxfY2FsbGJhY2soc3RydWN0IHVzYjJfeGZlciAqeGZlcikKLXsKLQlub2Rl
X3AJCQlub2RlID0geGZlci0+cHJpdl9zYzsKLQlzdHJ1Y3QgdWJ0X3NvZnRjCSpzYzsKLQlzdHJ1
Y3QgdXNiMl94ZmVyCSp4ZmVyX290aGVyOwotCi0JaWYgKE5HX05PREVfTk9UX1ZBTElEKG5vZGUp
KSB7Ci0JCU5HX05PREVfVU5SRUYobm9kZSk7Ci0JCXJldHVybjsgLyogbmV0Z3JhcGggbm9kZSBp
cyBnb25lICovCi0JfQotCi0Jc2MgPSBOR19OT0RFX1BSSVZBVEUobm9kZSk7Ci0JeGZlcl9vdGhl
ciA9IHNjLT5zY194ZmVyW1VCVF9JRl8wX0lOVFJfRFRfUkRdOwotCi0JaWYgKHVzYjJfY2xlYXJf
c3RhbGxfY2FsbGJhY2soeGZlciwgeGZlcl9vdGhlcikpIHsKLQkJRFBSSU5URigic3RhbGwgY2xl
YXJlZFxuIik7Ci0JCXNjLT5zY19mbGFncyAmPSB+VUJUX0ZMQUdfSU5UUl9TVEFMTDsKLQkJdXNi
Ml90cmFuc2Zlcl9zdGFydCh4ZmVyX290aGVyKTsKLQl9IGVsc2UKLQkJTkdfTk9ERV9VTlJFRihu
b2RlKTsgLyogY2FudCBjbGVhciBzdGFsbCAqLwotfSAvKiB1YnRfaW50cl9yZWFkX2NsZWFyX3N0
YWxsX2NhbGxiYWNrICovCi0KLS8qCiAgKiBDYWxsZWQgd2hlbiBpbmNvbWluZyBidWxrIHRyYW5z
ZmVyIChBQ0wgcGFja2V0KSBoYXMgY29tcGxldGVkLCBpLmUuCiAgKiBBQ0wgcGFja2V0IHdhcyBy
ZWNlaXZlZCBmcm9tIHRoZSBkZXZpY2UuCiAgKiBVU0IgY29udGV4dC4KQEAgLTk5MCwzNSArOTYy
LDYgQEAKIH0gLyogdWJ0X2J1bGtfcmVhZF9jYWxsYmFjayAqLwogCiAvKgotICogQ2FsbGVkIHdo
ZW4gb3V0Z29pbmcgY29udHJvbCB0cmFuc2ZlciBpbml0aWF0ZWQgdG8gY2xlYXIgc3RhbGwgb24K
LSAqIGluY29taW5nIGJ1bGsgcGlwZSBoYXMgY29tcGxldGVkLgotICogVVNCIGNvbnRleHQuCi0g
Ki8KLQotc3RhdGljIHZvaWQKLXVidF9idWxrX3JlYWRfY2xlYXJfc3RhbGxfY2FsbGJhY2soc3Ry
dWN0IHVzYjJfeGZlciAqeGZlcikKLXsKLQlub2RlX3AJCQlub2RlID0geGZlci0+cHJpdl9zYzsK
LQlzdHJ1Y3QgdWJ0X3NvZnRjCSpzYzsKLQlzdHJ1Y3QgdXNiMl94ZmVyCSp4ZmVyX290aGVyOwot
Ci0JaWYgKE5HX05PREVfTk9UX1ZBTElEKG5vZGUpKSB7Ci0JCU5HX05PREVfVU5SRUYobm9kZSk7
Ci0JCXJldHVybjsgLyogbmV0Z3JhcGggbm9kZSBpcyBnb25lICovCi0JfQotCi0Jc2MgPSBOR19O
T0RFX1BSSVZBVEUobm9kZSk7Ci0JeGZlcl9vdGhlciA9IHNjLT5zY194ZmVyW1VCVF9JRl8wX0JV
TEtfRFRfUkRdOwotCi0JaWYgKHVzYjJfY2xlYXJfc3RhbGxfY2FsbGJhY2soeGZlciwgeGZlcl9v
dGhlcikpIHsKLQkJRFBSSU5URigic3RhbGwgY2xlYXJlZFxuIik7Ci0JCXNjLT5zY19mbGFncyAm
PSB+VUJUX0ZMQUdfUkVBRF9TVEFMTDsKLQkJdXNiMl90cmFuc2Zlcl9zdGFydCh4ZmVyX290aGVy
KTsKLQl9IGVsc2UKLQkJTkdfTk9ERV9VTlJFRihub2RlKTsgLyogY2FudCBjbGVhciBzdGFsbCAq
LwotfSAvKiB1YnRfYnVsa19yZWFkX2NsZWFyX3N0YWxsX2NhbGxiYWNrICovCi0KLS8qCiAgKiBD
YWxsZWQgd2hlbiBvdXRnb2luZyBidWxrIHRyYW5zZmVyIChBQ0wgcGFja2V0KSBoYXMgY29tcGxl
dGVkLCBpLmUuCiAgKiBBQ0wgcGFja2V0IHdhcyBzZW50IHRvIHRoZSBkZXZpY2UuCiAgKiBVU0Ig
Y29udGV4dC4KQEAgLTEwOTYsMzUgKzEwMzksNiBAQAogfSAvKiB1YnRfYnVsa193cml0ZV9jYWxs
YmFjayAqLwogCiAvKgotICogQ2FsbGVkIHdoZW4gb3V0Z29pbmcgY29udHJvbCB0cmFuc2ZlciBp
bml0aWF0ZWQgdG8gY2xlYXIgc3RhbGwgb24KLSAqIG91dGdvaW5nIGJ1bGsgcGlwZSBoYXMgY29t
cGxldGVkLgotICogVVNCIGNvbnRleHQuCi0gKi8KLQotc3RhdGljIHZvaWQKLXVidF9idWxrX3dy
aXRlX2NsZWFyX3N0YWxsX2NhbGxiYWNrKHN0cnVjdCB1c2IyX3hmZXIgKnhmZXIpCi17Ci0Jbm9k
ZV9wCQkJbm9kZSA9IHhmZXItPnByaXZfc2M7Ci0Jc3RydWN0IHVidF9zb2Z0Ywkqc2M7Ci0Jc3Ry
dWN0IHVzYjJfeGZlcgkqeGZlcl9vdGhlcjsKLQotCWlmIChOR19OT0RFX05PVF9WQUxJRChub2Rl
KSkgewotCQlOR19OT0RFX1VOUkVGKG5vZGUpOwotCQlyZXR1cm47IC8qIG5ldGdyYXBoIG5vZGUg
aXMgZ29uZSAqLwotCX0KLQotCXNjID0gTkdfTk9ERV9QUklWQVRFKG5vZGUpOwotCXhmZXJfb3Ro
ZXIgPSBzYy0+c2NfeGZlcltVQlRfSUZfMF9CVUxLX0RUX1dSXTsKLQotCWlmICh1c2IyX2NsZWFy
X3N0YWxsX2NhbGxiYWNrKHhmZXIsIHhmZXJfb3RoZXIpKSB7Ci0JCURQUklOVEYoInN0YWxsIGNs
ZWFyZWRcbiIpOwotCQlzYy0+c2NfZmxhZ3MgJj0gflVCVF9GTEFHX1dSSVRFX1NUQUxMOwotCQl1
c2IyX3RyYW5zZmVyX3N0YXJ0KHhmZXJfb3RoZXIpOwotCX0gZWxzZQotCQlOR19OT0RFX1VOUkVG
KG5vZGUpOyAvKiBjYW50IGNsZWFyIHN0YWxsICovCi19IC8qIHVidF9idWxrX3dyaXRlX2NsZWFy
X3N0YWxsX2NhbGxiYWNrICovCi0KLS8qCiAgKiBDYWxsZWQgd2hlbiBpbmNvbWluZyBpc29jIHRy
YW5zZmVyIChTQ08gcGFja2V0KSBoYXMgY29tcGxldGVkLCBpLmUuCiAgKiBTQ08gcGFja2V0IHdh
cyByZWNlaXZlZCBmcm9tIHRoZSBkZXZpY2UuCiAgKiBVU0IgY29udGV4dC4KQEAgLTEzNjEsNiAr
MTI3NSw4MCBAQAogCX0KIH0KIAorLyoKKyAqIENhbGxlZCB3aGVuIGFuIG91dGdvaW5nIGNvbnRy
b2wgdHJhbnNmZXIgdG8gY2xlYXIgc3RhbGwgb24gYW5vdGhlcgorICogcGlwZSBoYXMgYmVlbiBj
b21wbGV0ZWQuIEdlbmVyaWMgZm9yIGFsbCBjbGVhciBzdGFsbCB0cmFuc2ZlcnMuCisgKiBVU0Ig
Y29udGV4dC4KKyAqLworCitzdGF0aWMgdm9pZAordWJ0X2NsZWFyX3N0YWxsX2NhbGxiYWNrKHN0
cnVjdCB1c2IyX3hmZXIgKnhmZXIpCit7CisJbm9kZV9wCQkJbm9kZSA9IHhmZXItPnByaXZfc2M7
CisJc3RydWN0IHVidF9zb2Z0Ywkqc2M7CisJc3RydWN0IHVzYjJfeGZlcgkqeGZlcl9vdGhlcjsK
KwlpbnQJCQlmbGFnOworCisJaWYgKE5HX05PREVfTk9UX1ZBTElEKG5vZGUpKSB7CisJCU5HX05P
REVfVU5SRUYobm9kZSk7CisJCXJldHVybjsgLyogbmV0Z3JhcGggbm9kZSBpcyBnb25lICovCisJ
fQorCisJc2MgPSBOR19OT0RFX1BSSVZBVEUobm9kZSk7CisKKwkvKgorCSAqIEZpZ3VyZSBvdXQg
d2hpY2ggY2xlYXIgc3RhbGwgdHJhbnNmZXIgaGFzIGNvbXBsZXRlZAorCSAqIGFuZCBzZXQgeGZl
cl9vdGhlciBhbmQgZmxhZyBhY2NvcmRpbmdseQorCSAqLworCisJaWYgKHhmZXIgPT0gc2MtPnNj
X3hmZXJbVUJUX0lGXzBfQlVMS19DU19XUl0pIHsKKwkJeGZlcl9vdGhlciA9IHNjLT5zY194ZmVy
W1VCVF9JRl8wX0JVTEtfRFRfV1JdOworCQlmbGFnID0gVUJUX0ZMQUdfV1JJVEVfU1RBTEw7CisJ
fSBlbHNlIGlmICh4ZmVyID09IHNjLT5zY194ZmVyW1VCVF9JRl8wX0JVTEtfQ1NfUkRdKSB7CisJ
CXhmZXJfb3RoZXIgPSBzYy0+c2NfeGZlcltVQlRfSUZfMF9CVUxLX0RUX1JEXTsKKwkJZmxhZyA9
IFVCVF9GTEFHX1JFQURfU1RBTEw7CisJfSBlbHNlIGlmICh4ZmVyID09IHNjLT5zY194ZmVyW1VC
VF9JRl8wX0lOVFJfQ1NfUkRdKSB7CisJCXhmZXJfb3RoZXIgPSBzYy0+c2NfeGZlcltVQlRfSUZf
MF9JTlRSX0RUX1JEXTsKKwkJZmxhZyA9IFVCVF9GTEFHX0lOVFJfU1RBTEw7CisJfSBlbHNlCisJ
CXBhbmljKCJjb3VsZCBub3Qgc2V0IHhmZXJfb3RoZXIhIHhmZXI9JXBcbiIsIHhmZXIpOworCisJ
aWYgKHhmZXJfb3RoZXIgPT0gTlVMTCkgeworCQlVQlRfV0FSTihzYywgIm90aGVyIHRyYW5zZmVy
IGlzIGdvbmUuIGFyZSB3ZSBkeWluZz8hXG4iKTsKKwkJTkdfTk9ERV9VTlJFRihub2RlKTsKKwkJ
cmV0dXJuOyAvKiBvdGhlciB0cmFuc2ZlciBpcyBnb25lLiBhcmUgd2UgZHlpbmc/ISAqLworCX0K
KworCXN3aXRjaCAoVVNCX0dFVF9TVEFURSh4ZmVyKSkgeworCWNhc2UgVVNCX1NUX1NFVFVQOgor
CQkvKgorCQkgKiBJZ25vcmUgcmV0dXJuIHZhbHVlIGZyb20gdXNiMl9jbGVhcl9zdGFsbF9jYWxs
YmFjaygpCisJCSAqIGFzIGl0IGFwcGVhcnMgaXQgY2FuIG5vdCByZXR1cm4gYW55dGhpbmcgb3Ro
ZXIgdGhhbgorCQkgKiB6ZXJvIGluIFVTQl9TVF9TRVRVUCBjYXNlCisJCSAqLworCQkodm9pZCkg
dXNiMl9jbGVhcl9zdGFsbF9jYWxsYmFjayh4ZmVyLCB4ZmVyX290aGVyKTsKKwkJYnJlYWs7CisK
KwljYXNlIFVTQl9TVF9UUkFOU0ZFUlJFRDoKKwkJVUJUX0lORk8oc2MsICJzdGFsbCBjbGVhcmVk
LCBmbGFnPSUjeFxuIiwgZmxhZyk7CitzdWJtaXRfb3RoZXI6CisJCXNjLT5zY19mbGFncyAmPSB+
ZmxhZzsKKwkJdXNiMl90cmFuc2Zlcl9zdGFydCh4ZmVyX290aGVyKTsKKwkJYnJlYWs7CisKKwlk
ZWZhdWx0OgorCQlpZiAoeGZlci0+ZXJyb3IgIT0gVVNCX0VSUl9DQU5DRUxMRUQpIHsKKwkJCVVC
VF9XQVJOKHNjLCAiY2xlYXIgc3RhbGwgdHJhbnNmZXIgZmFpbGVkOiAlcywgIiBcCisJCQkJImZs
YWc9JSN4XG4iLCB1c2IyX2VycnN0cih4ZmVyLT5lcnJvciksIGZsYWcpOworCQkJZ290byBzdWJt
aXRfb3RoZXI7CisJCQkvKiBOT1QgUkVBQ0hFRCAqLworCQl9CisKKwkJTkdfTk9ERV9VTlJFRihu
b2RlKTsgLyogY2FuY2VsbGVkICovCisJCWJyZWFrOworCX0KK30gLyogdWJ0X2NsZWFyX3N0YWxs
X2NhbGxiYWNrICovCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2x1ZSAK
--000e0cd296c02e5fde04612b42d8--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bb4a86c70901231118m79037ff1pfa12d50b0305cddd>