From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f51.google.com ([209.85.221.51]) by ewsd; Tue Apr 16 06:22:44 EDT 2019 Received: by mail-wr1-f51.google.com with SMTP id k17so21555655wrx.10 for <9front@9front.org>; Tue, 16 Apr 2019 03:22:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=offblast-org.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=zXr3f4b+nycHBRcn7wiZEdFvdmCyWQiWUd9pFw71iec=; b=WJkgRwZ2ZzRhqDIWYxiKl/R8mjY4blh17SP7tUr6ZzY2dj1XIPktXGJr7wgA8VTM8b OUBs6iM447xSv/rCXOeFh1roGDQnr2IWeNGnb0wNb9B4gCvXafKs6bpLXJUQCJRlX0Ao 4qg7q7HmOxyT74bOvcIFStX/k0sUXBCaR9CaQqDiKGoW4VQQ32WMMwmH5c21peZSrEXC UJwZxqIxlYHAICmnVNdEe+1Q8Cn1YwgeKPuL588kch0eHqdiDhfJ3+UTh5D0Cg+0N8R0 0JdWU1mx2C7FhHbky6fo4PsHE6vbfvi8hB7jrlhydss4oVD3X+da50+Rff4qawJ7XIen ni+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=zXr3f4b+nycHBRcn7wiZEdFvdmCyWQiWUd9pFw71iec=; b=fb3+zde4E9rb+J1Rbbi9MsIDhc414vBLSeZTLnyxHg0ZAKE2zlXEzcX0BWkeoC92dC MpWDg8APURI5TeZgQpe4nA301tpTQg8PIaFLmlHZ9eyf998QcJ+JOoeP+t2mtuWZ8kAJ 9iTe6fizcMw2CRHmL7ZjuyLZq4jhTQyzyrF15kU3MiRhYd3cMmW3WeOEzKPVGmc+corc zK4iBNEHKvyOkloS0ZYTMUVsTS9s6VDxjbEpSU4hM1D0jhTdzAsqMNPLE8aCY2K7PaOR Vx9UOhI6h+DANs9xV6EzICuE6bjilG9DO2/350Q3UtZSqSuHahMu2gLNsVjx1hyL8pnC atQA== X-Gm-Message-State: APjAAAVgGRZoZbgu4oLVU3U+d+ixO01fpM+eSZMWF7Q3bRGx6lxEXSaN mXVlmV3qVocnbsJh6haYggM9z+6hx5pkVFjhUziMEyYBi3k= X-Google-Smtp-Source: APXvYqzIK4yK8sZHkE34i5/QoI7Zdo6J1w1xlAbTcizUohAo6T4EXR8sTl/gTE9tYgRVZrOes3iddM1/mDz9fdYQqjU= X-Received: by 2002:a5d:4f8b:: with SMTP id d11mr20804783wru.150.1555410158731; Tue, 16 Apr 2019 03:22:38 -0700 (PDT) MIME-Version: 1.0 From: Nick Owens Date: Tue, 16 Apr 2019 03:22:27 -0700 Message-ID: Subject: bug: usb hub enumeration hangs To: 9front@9front.org Content-Type: multipart/mixed; boundary="000000000000fe50640586a32538" List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: managed managed database event base --000000000000fe50640586a32538 Content-Type: text/plain; charset="UTF-8" on my new machine xhci/usbd lock up when my IBM ultranav with an internal hub is plugged in. attached is a patch that fixes it for me. if it looks ok, i will commit it. if anyone has hubs, whether just a hub or inside something else like a keyboard, please test this. i have traced this down to usbd attempting to set the 'port enable' feature on one of the ports. when it attempts to enable the port, a usb request is made but there is no reply, making usbd hang while doing the endpoint write. from the USB 2 spec: 11.24.2.7.1.2 PORT_ENABLE ... This bit may be set only as a result of a SetPortFeature(PORT_RESET) request. ... The hub response to a SetPortFeature(PORT_ENABLE) request is not specified. The preferred behavior is that the hub respond with a Request Error. This may not be used by the USB System Software. The ClearPortFeature(PORT_ENABLE) request is supported as specified in Section 11.5.1.4. it's pretty clear to me we shouldn't fiddle with this bit. the patch fixes use of it, and additionally replaces port enabling with unsuspend when we check for port suspension. --000000000000fe50640586a32538 Content-Type: text/x-patch; charset="US-ASCII"; name="usbd.patch" Content-Disposition: attachment; filename="usbd.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jujn10ns0 ZGlmZiAtLWdpdCBhL3N5cy9zcmMvY21kL251c2IvdXNiZC9kYXQuaCBiL3N5cy9zcmMvY21kL251 c2IvdXNiZC9kYXQuaAotLS0gYS9zeXMvc3JjL2NtZC9udXNiL3VzYmQvZGF0LmgKKysrIGIvc3lz L3NyYy9jbWQvbnVzYi91c2JkL2RhdC5oCkBAIC01NSw3ICs1NSw2IEBAIGVudW0KIAogCS8qIERl bGF5cywgdGltZW91dHMgKG1zKSAqLwogCVNwYXduZGVsYXkJPSAyNTAsCQkvKiBob3cgb2Z0ZW4g bWF5IHdlIHJlLXNwYXduIGEgZHJpdmVyICovCi0JQ29ubmVjdGRlbGF5CT0gNTAwLAkJLyogaG93 IG11Y2ggdG8gd2FpdCBhZnRlciBhIGNvbm5lY3QgKi8KIAlSZXNldGRlbGF5CT0gMjAsCQkvKiBo b3cgbXVjaCB0byB3YWl0IGFmdGVyIGEgcmVzZXQgKi8KIAlFbmFibGVkZWxheQk9IDIwLAkJLyog aG93IG11Y2ggdG8gd2FpdCBhZnRlciBhbiBlbmFibGUgKi8KIAlQb3dlcmRlbGF5CT0gMTAwLAkJ LyogYWZ0ZXIgcG93ZXJpbmcgdXAgcG9ydHMgKi8KZGlmZiAtLWdpdCBhL3N5cy9zcmMvY21kL251 c2IvdXNiZC9odWIuYyBiL3N5cy9zcmMvY21kL251c2IvdXNiZC9odWIuYwotLS0gYS9zeXMvc3Jj L2NtZC9udXNiL3VzYmQvaHViLmMKKysrIGIvc3lzL3NyYy9jbWQvbnVzYi91c2JkL2h1Yi5jCkBA IC0zNjIsNyArMzYyLDcgQEAgcG9ydGF0dGFjaChIdWIgKmgsIGludCBwLCB1MzJpbnQgc3RzKQog CXBwLT5zdGF0ZSA9IFBhdHRhY2hlZDsKIAlkcHJpbnQoMiwgIiVzOiAlczogcG9ydCAlZCBhdHRh Y2ggc3RzICUjdXhcbiIsIGFyZ3YwLCBkLT5kaXIsIHAsIHN0cyk7CiAJaWYoaC0+ZGV2LT5pc3Vz YjMpewotCQlzbGVlcChDb25uZWN0ZGVsYXkpOworCQlzbGVlcChFbmFibGVkZWxheSk7CiAJCXN0 cyA9IHBvcnRzdGF0dXMoaCwgcCk7CiAJCWlmKHN0cyA9PSAtMSkKIAkJCWdvdG8gRmFpbDsKQEAg LTM3Miw5ICszNzIsNiBAQCBwb3J0YXR0YWNoKEh1YiAqaCwgaW50IHAsIHUzMmludCBzdHMpCiAJ CX0KIAkJc3AgPSAic3VwZXIiOwogCX0gZWxzZSB7Ci0JCXNsZWVwKENvbm5lY3RkZWxheSk7Ci0J CWlmKGh1YmZlYXR1cmUoaCwgcCwgRnBvcnRlbmFibGUsIDEpIDwgMCkKLQkJCWRwcmludCgyLCAi JXM6ICVzOiBwb3J0ICVkOiBlbmFibGU6ICVyXG4iLCBhcmd2MCwgZC0+ZGlyLCBwKTsKIAkJc2xl ZXAoRW5hYmxlZGVsYXkpOwogCQlpZihodWJmZWF0dXJlKGgsIHAsIEZwb3J0cmVzZXQsIDEpIDwg MCl7CiAJCQlkcHJpbnQoMiwgIiVzOiAlczogcG9ydCAlZDogcmVzZXQ6ICVyXG4iLCBhcmd2MCwg ZC0+ZGlyLCBwKTsKQEAgLTU1OCwxMiArNTU1LDcgQEAgcG9ydHJlc2V0KEh1YiAqaCwgaW50IHAp CiAJCWdvdG8gRmFpbDsKIAlpZigoc3RzICYgUFNlbmFibGUpID09IDApewogCQlkcHJpbnQoMiwg IiVzOiAlczogcG9ydCAlZDogbm90IGVuYWJsZWQ/XG4iLCBhcmd2MCwgZC0+ZGlyLCBwKTsKLQkJ aWYoaC0+ZGV2LT5pc3VzYjMpCi0JCQlnb3RvIEZhaWw7Ci0JCWh1YmZlYXR1cmUoaCwgcCwgRnBv cnRlbmFibGUsIDEpOwotCQlzdHMgPSBwb3J0c3RhdHVzKGgsIHApOwotCQlpZigoc3RzICYgUFNl bmFibGUpID09IDApCi0JCQlnb3RvIEZhaWw7CisJCWdvdG8gRmFpbDsKIAl9CiAJbmQgPSBwcC0+ ZGV2OwogCW9wZW5kZXZkYXRhKG5kLCBPUkRXUik7CkBAIC02MzUsMTEgKzYyNywxMSBAQCBlbnVt aHViKEh1YiAqaCwgaW50IHApCiAJb25odWJzID0gbmh1YnM7CiAJaWYoIWgtPmRldi0+aXN1c2Iz KXsKIAkJaWYoKHN0cyAmIFBTc3VzcGVuZCkgIT0gMCl7Ci0JCQlpZihodWJmZWF0dXJlKGgsIHAs IEZwb3J0ZW5hYmxlLCAxKSA8IDApCi0JCQkJZHByaW50KDIsICIlczogJXM6IHBvcnQgJWQ6IGVu YWJsZTogJXJcbiIsIGFyZ3YwLCBkLT5kaXIsIHApOworCQkJaWYoaHViZmVhdHVyZShoLCBwLCBG cG9ydHN1c3BlbmQsIDApIDwgMCkKKwkJCQlkcHJpbnQoMiwgIiVzOiAlczogcG9ydCAlZDogdW5z dXNwZW5kOiAlclxuIiwgYXJndjAsIGQtPmRpciwgcCk7CiAJCQlzbGVlcChFbmFibGVkZWxheSk7 CiAJCQlzdHMgPSBwb3J0c3RhdHVzKGgsIHApOwotCQkJZnByaW50KDIsICIlczogJXM6IHBvcnQg JWQ6IHJlc3VtZWQgKHN0cyAlI3V4KVxuIiwgYXJndjAsIGQtPmRpciwgcCwgc3RzKTsKKwkJCWZw cmludCgyLCAiJXM6ICVzOiBwb3J0ICVkOiB1bnN1c3BlbmRlZCAoc3RzICUjdXgpXG4iLCBhcmd2 MCwgZC0+ZGlyLCBwLCBzdHMpOwogCQl9CiAJfQogCWlmKChwcC0+c3RzICYgUFNwcmVzZW50KSA9 PSAwICYmIChzdHMgJiBQU3ByZXNlbnQpICE9IDApewo= --000000000000fe50640586a32538--