From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2] USB: serial: io_edgeport: mark expected switch fall-throughs From: Greg Kroah-Hartman Message-Id: <20190502144729.GB17960@kroah.com> Date: Thu, 2 May 2019 16:47:29 +0200 To: "Gustavo A. R. Silva" Cc: Johan Hovold , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Kees Cook List-ID: T24gVGh1LCBNYXkgMDIsIDIwMTkgYXQgMDQ6NDA6NDFQTSArMDIwMCwgR3JlZyBLcm9haC1IYXJ0 bWFuIHdyb3RlOgo+IE9uIFRodSwgTWF5IDAyLCAyMDE5IGF0IDA5OjI4OjM3QU0gLTA1MDAsIEd1 c3Rhdm8gQS4gUi4gU2lsdmEgd3JvdGU6Cj4gPiAKPiA+IAo+ID4gT24gNS8yLzE5IDg6NTYgQU0s IEpvaGFuIEhvdm9sZCB3cm90ZToKPiA+ID4gT24gVGh1LCBNYXkgMDIsIDIwMTkgYXQgMDg6MjI6 MzBBTSAtMDUwMCwgR3VzdGF2byBBLiBSLiBTaWx2YSB3cm90ZToKPiA+ID4+Cj4gPiA+Pgo+ID4g Pj4gT24gNS8yLzE5IDU6MjYgQU0sIEpvaGFuIEhvdm9sZCB3cm90ZToKPiA+ID4+PiBPbiBXZWQs IE1heSAwMSwgMjAxOSBhdCAwNDozMzoyOVBNIC0wNTAwLCBHdXN0YXZvIEEuIFIuIFNpbHZhIHdy b3RlOgo+ID4gPj4+PiBJbiBwcmVwYXJhdGlvbiB0byBlbmFibGluZyAtV2ltcGxpY2l0LWZhbGx0 aHJvdWdoLCBtYXJrIHN3aXRjaAo+ID4gPj4+PiBjYXNlcyB3aGVyZSB3ZSBhcmUgZXhwZWN0aW5n IHRvIGZhbGwgdGhyb3VnaC4KPiA+ID4+Pj4KPiA+ID4+Pj4gVGhpcyBwYXRjaCBmaXhlcyB0aGUg Zm9sbG93aW5nIHdhcm5pbmdzOgo+ID4gPj4+Pgo+ID4gPj4+PiBkcml2ZXJzL3VzYi9zZXJpYWwv aW9fZWRnZXBvcnQuYzogSW4gZnVuY3Rpb24g4oCYcHJvY2Vzc19yY3ZkX2RhdGHigJk6Cj4gPiA+ Pj4+IGRyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jOjE3NTA6Nzogd2FybmluZzogdGhp cyBzdGF0ZW1lbnQgbWF5IGZhbGwgdGhyb3VnaCBbLVdpbXBsaWNpdC1mYWxsdGhyb3VnaD1dCj4g PiA+Pj4+ICAgICBpZiAoYnVmZmVyTGVuZ3RoID09IDApIHsKPiA+ID4+Pj4gICAgICAgIF4KPiA+ ID4+Pj4gZHJpdmVycy91c2Ivc2VyaWFsL2lvX2VkZ2Vwb3J0LmM6MTc1NTozOiBub3RlOiBoZXJl Cj4gPiA+Pj4+ICAgIGNhc2UgRVhQRUNUX0hEUjI6Cj4gPiA+Pj4+ICAgIF5+fn4KPiA+ID4+Pj4g ZHJpdmVycy91c2Ivc2VyaWFsL2lvX2VkZ2Vwb3J0LmM6MTgxMDo4OiB3YXJuaW5nOiB0aGlzIHN0 YXRlbWVudCBtYXkgZmFsbCB0aHJvdWdoIFstV2ltcGxpY2l0LWZhbGx0aHJvdWdoPV0KPiA+ID4+ Pj4gICAgICBpZiAoYnVmZmVyTGVuZ3RoID09IDApIHsKPiA+ID4+Pj4gICAgICAgICBeCj4gPiA+ Pj4+IGRyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jOjE4MTY6Mzogbm90ZTogaGVyZQo+ ID4gPj4+PiAgICBjYXNlIEVYUEVDVF9EQVRBOiAvKiBFeHBlY3QgZGF0YSAqLwo+ID4gPj4+PiAg ICBefn5+Cj4gPiA+Pj4+Cj4gPiA+Pj4+IFdhcm5pbmcgbGV2ZWwgMyB3YXMgdXNlZDogLVdpbXBs aWNpdC1mYWxsdGhyb3VnaD0zCj4gPiA+Pj4+Cj4gPiA+Pj4+IE5vdGljZSB0aGF0LCBpbiB0aGlz IHBhcnRpY3VsYXIgY2FzZSwgdGhlIGNvZGUgY29tbWVudHMgYXJlIG1vZGlmaWVkCj4gPiA+Pj4+ IGluIGFjY29yZGFuY2Ugd2l0aCB3aGF0IEdDQyBpcyBleHBlY3RpbmcgdG8gZmluZC4KPiA+ID4+ Pj4KPiA+ID4+Pj4gVGhpcyBwYXRjaCBpcyBwYXJ0IG9mIHRoZSBvbmdvaW5nIGVmZm9ydHMgdG8g ZW5hYmxlCj4gPiA+Pj4+IC1XaW1wbGljaXQtZmFsbHRocm91Z2guCj4gPiA+Pj4+Cj4gPiA+Pj4+ IFNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8gQS4gUi4gU2lsdmEgPGd1c3Rhdm9AZW1iZWRkZWRvci5j b20+Cj4gPiA+Pj4+IC0tLQo+ID4gPj4+PiBDaGFuZ2VzIGluIHYyOgo+ID4gPj4+PiAgLSBXYXJu aW5nIGxldmVsIDMgaXMgbm93IHVzZWQ6IC1XaW1wbGljaXQtZmFsbHRocm91Z2g9Mwo+ID4gPj4+ PiAgICBpbnN0ZWFkIG9mIHdhcm5pbmcgbGV2ZWwgMi4KPiA+ID4+Pj4gIC0gQWxsIHdhcm5pbmdz IGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50IGFyZSBhZGRyZXNzZWQgbm93Lgo+ID4gPj4+Pgo+ID4g Pj4+PiBOb3RpY2UgdGhhdCB0aGVzZSBhcmUgdGhlIGxhc3QgcmVtYWluaW5nIGZhbGwtdGhyb3Vn aCB3YXJuaW5ncwo+ID4gPj4+PiBpbiB0aGUgVVNCIHN1YnN5c3RlbS4gOikKPiA+ID4+Pgo+ID4g Pj4+PiAgZHJpdmVycy91c2Ivc2VyaWFsL2lvX2VkZ2Vwb3J0LmMgfCAzICsrLQo+ID4gPj4+PiAg MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gPj4+Pgo+ ID4gPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2VkZ2Vwb3J0LmMgYi9k cml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYwo+ID4gPj4+PiBpbmRleCA0Y2EzMWMwZTQx NzQuLjdhZDEwMzI4ZjRlMiAxMDA2NDQKPiA+ID4+Pj4gLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFs L2lvX2VkZ2Vwb3J0LmMKPiA+ID4+Pj4gKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2VkZ2Vw b3J0LmMKPiA+ID4+Pj4gQEAgLTE3NTEsNyArMTc1MSw3IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3Nf cmN2ZF9kYXRhKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsLAo+ID4gPj4+PiAg CQkJCWVkZ2Vfc2VyaWFsLT5yeFN0YXRlID0gRVhQRUNUX0hEUjI7Cj4gPiA+Pj4+ICAJCQkJYnJl YWs7Cj4gPiA+Pj4+ICAJCQl9Cj4gPiA+Pj4+IC0JCQkvKiBvdGhlcndpc2UsIGRyb3Agb24gdGhy b3VnaCAqLwo+ID4gPj4+PiArCQkJLyogRmFsbCB0aHJvdWdoIC0gb3RoZXJ3aXNlLCBkcm9wIG9u IHRocm91Z2ggKi8KPiA+ID4+Pj4gIAkJY2FzZSBFWFBFQ1RfSERSMjoKPiA+ID4+Pj4gIAkJCWVk Z2Vfc2VyaWFsLT5yeEhlYWRlcjIgPSAqYnVmZmVyOwo+ID4gPj4+PiAgCQkJKytidWZmZXI7Cj4g PiA+Pj4+IEBAIC0xODEzLDYgKzE4MTMsNyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX3JjdmRfZGF0 YShzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCwKPiA+ID4+Pj4gIAkJCQl9Cj4g PiA+Pj4+ICAJCQkJLyogRWxzZSwgZHJvcCB0aHJvdWdoICovCj4gPiA+Pj4+ICAJCQl9Cj4gPiA+ Pj4+ICsJCQkvKiBGYWxsIHRocm91Z2ggKi8KPiA+ID4+Pj4gIAkJY2FzZSBFWFBFQ1RfREFUQTog LyogRXhwZWN0IGRhdGEgKi8KPiA+ID4+Pgo+ID4gPj4+IExvb2tzIGxpa2UgeW91IGZvcmdvdCB0 byB0YWtlIHRoZSBvcmlnaW5hbCByZXZpZXcgZmVlZGJhY2sgeW91IGdvdCBpbnRvCj4gPiA+Pj4g YWNjb3VudDoKPiA+ID4+Pgo+ID4gPj4+IAlodHRwczovL2xrbWwua2VybmVsLm9yZy9yLzg3azF6 ZjRrMjQuZnNmQG1pcmFjdWxpeC5tb3JrLm5vCj4gPiA+Pj4KPiA+ID4+Cj4gPiA+PiBPaCwgdGhl IHRoaW5nIGlzIHRoYXQgdGhlIGZhbGwtdGhyb3VnaCBjb21tZW50cyBoYXZlIHRvIGJlIHBsYWNl ZCBhdAo+ID4gPj4gdGhlIHZlcnkgYm90dG9tIG9mIHRoZSBjYXNlLiBBbHNvLCBiYXNlZCBvbiB0 aGF0IGZlZWRiYWNrLCB0aGlzIHRpbWUKPiA+ID4+IEkgbGVmdCB0aGUgIkVsc2UsIGRyb3AgdGhy b3VnaCIgY29tbWVudCBpbiBwbGFjZSwgc28gcGVvcGxlIGNhbiBiZQo+ID4gPj4gaW5mb3JtZWQg dGhhdCBzdWNoIGZhbGwtdGhyb3VnaCBpcyBjb25kaXRpb25hbC4KPiA+ID4+Cj4gPiA+PiBXaGF0 IGRvIHlvdSB0aGluayBhYm91dCB0aGlzOgo+ID4gPj4KPiA+ID4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdl cG9ydC5jCj4gPiA+PiBpbmRleCA0Y2EzMWMwZTQxNzQuLjUyZjI3ZmM4MjU2MyAxMDA2NDQKPiA+ ID4+IC0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jCj4gPiA+PiArKysgYi9k cml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYwo+ID4gPj4gQEAgLTE3NTEsNyArMTc1MSw3 IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfcmN2ZF9kYXRhKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwg KmVkZ2Vfc2VyaWFsLAo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGdl X3NlcmlhbC0+cnhTdGF0ZSA9IEVYUEVDVF9IRFIyOwo+ID4gPj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIH0KPiA+ ID4+IC0gICAgICAgICAgICAgICAgICAgICAgIC8qIG90aGVyd2lzZSwgZHJvcCBvbiB0aHJvdWdo ICovCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAvKiBGYWxsIHRocm91Z2ggLSBvdGhl cndpc2UsIGRyb3Agb24gdGhyb3VnaCAqLwo+ID4gPj4gICAgICAgICAgICAgICAgIGNhc2UgRVhQ RUNUX0hEUjI6Cj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICBlZGdlX3NlcmlhbC0+cnhI ZWFkZXIyID0gKmJ1ZmZlcjsKPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICsrYnVmZmVy Owo+ID4gPj4gQEAgLTE4MTMsNiArMTgxMywxMSBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX3JjdmRf ZGF0YShzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCwKPiA+ID4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBFbHNlLCBkcm9wIHRocm91Z2ggKi8KPiA+ID4+ICAgICAgICAgICAgICAgICAg ICAgICAgIH0KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJld2FyZSB0aGF0LCBj dXJyZW50bHksIHRoZXJlIGFyZSBhdCBsZWFzdCB0aHJlZQo+ID4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICogYnJlYWsgc3RhdGVtZW50cyBpbiB0aGlzIGNhc2UgYmxvY2ssIHNvIHRoZQo+ ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogZmFsbC10aHJvdWdoIG1hcmtlZCBiZWxv dyBpcyBOT1QgdW5jb25kaXRpb25hbC4KPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAq Lwo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgLyogRmFsbCB0aHJvdWdoICovCj4gPiA+ PiAgICAgICAgICAgICAgICAgY2FzZSBFWFBFQ1RfREFUQTogLyogRXhwZWN0IGRhdGEgKi8KPiA+ ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWZmZXJMZW5ndGggPCBlZGdlX3Nlcmlh bC0+cnhCeXRlc1JlbWFpbmluZykgewo+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByeExlbiA9IGJ1ZmZlckxlbmd0aDsKPiA+ID4gCj4gPiA+IEl0J3MgYmV0dGVyIHRoYW4g djIsIGJ1dCBJIHRob3VnaHQgeW91IHNhaWQgeW91IHdlcmUgZ29ubmEgbG9vayBpbnRvCj4gPiA+ IHJlc3RydWN0dXJpbmcgdGhlIGNvZGUgdG8gbWFpbnRhaW4gKG9yIGV2ZW4gaW1wcm92ZSkgcmVh ZGFiaWxpdHk/Cj4gPiA+IAo+ID4gCj4gPiBBdCBmaXJzdCwgSSB0aG91Z2h0IGFib3V0IHRoYXQs IGJ1dCBub3cgSSBkb24ndCB0aGluayB0aGF0J3MgcmVhbGlzdGljLgo+ID4gSSdkIHR1cm4gdGhl IGlmLWVsc2UgaW50byBhIHN3aXRjaCwgYW5kIGJhc2VkIG9uIHRoZSBoaXN0b3J5IG9mIGZlZWRi YWNrCj4gPiBvbiB0aGlzIHBhdGNoLCB3ZSB3aWxsIGVuZCB1cCBoYXZpbmcgdGhlIHNhbWUgY29t cGxhaW5zIGFib3V0IHRoZSBicmVhawo+ID4gc3RhdGVtZW50cyBpbiB0aGF0IG5ldyBzd2l0Y2gg YW5kIHRoZSBwb3NzaWJpbGl0eSBvZiBhIGZhbGwtdGhyb3VnaCB0bwo+ID4gY2FzZSBFWFBFQ1Rf REFUQS4gQXQgdGhlIGVuZCBJIHdvdWxkIHN0aWxsIGhhdmUgdG8gYWRkIGEgY29tbWVudCBleHBs YWluaW5nCj4gPiB0aGF0IHRoZSBsYXN0IGZhbGwtdGhyb3VnaCBtYXJrIGluIHVuY29uZGl0aW9u YWwuCj4gCj4gSSBsb3ZlIGl0IGhvdyBubyBvbmUgaXMgYmxhbWluZyB0aGUgb3JpZ2luYWwgYXV0 aG9yIG9mIHRoaXMgY29kZSAoaS5lLgo+IG1lLi4uKQo+IAo+IExldCBtZSBzZWUgaWYgSSBjYW4g Zml4IGl0IHVwIHRvIGJlIG1vcmUgInNhbmUiLCB0aGlzIGlzIG15IGZhdWx0LgoKSG93IGFib3V0 IHRoZSBmb2xsb3dpbmcgcGF0Y2g/ICBKb2hhbiwgdGhpcyBsb29rIG5pY2VyIHRvIHlvdT8gIEl0 IG1ha2VzCm1vcmUgc2Vuc2UgdG8gbWUuCgpBbmQgaW4gbG9va2luZyBhdCB0aGUgaGlzdG9yeSwg SSBjYW4ndCBjbGFpbSB0b3RhbCBjcmVkaXQgZm9yIHRoaXMKbW9uc3Ryb3NpdHksIGl0IHdhcyBv cmlnaW5hbGx5IHdyaXR0ZW4gYnkgc29tZW9uZSBlbHNlLCBJIGp1c3QgImNsZWFuZWQKaXQgdXAi IGJhY2sgaW4gMjAwMSwgdG8gZ2V0IGl0IGludG8gbWVyZ2FibGUgc2hhcGUuICBDbGVhcmx5ICJt ZXJnYWJsZQpzaGFwZSIgd2FzIG11Y2ggbG9vc2VyIGJhY2sgdGhlbiA6KQoKdGhhbmtzLAoKZ3Jl ZyBrLWgKCi0tLS0tLS0tLS0tLS0tLS0KCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwv aW9fZWRnZXBvcnQuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jCmluZGV4IDRj YTMxYzBlNDE3NC4uNzMyMDgxYjM3MThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwv aW9fZWRnZXBvcnQuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYwpAQCAt MTc1MSw3ICsxNzUxLDggQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19yY3ZkX2RhdGEoc3RydWN0IGVk Z2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwsCiAJCQkJZWRnZV9zZXJpYWwtPnJ4U3RhdGUgPSBF WFBFQ1RfSERSMjsKIAkJCQlicmVhazsKIAkJCX0KLQkJCS8qIG90aGVyd2lzZSwgZHJvcCBvbiB0 aHJvdWdoICovCisJCQkvKiBGYWxsIHRocm91Z2ggKi8KKwogCQljYXNlIEVYUEVDVF9IRFIyOgog CQkJZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMiA9ICpidWZmZXI7CiAJCQkrK2J1ZmZlcjsKQEAgLTE3 OTAsMjkgKzE3OTEsMjEgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19yY3ZkX2RhdGEoc3RydWN0IGVk Z2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwsCiAJCQkJCQllZGdlX3NlcmlhbC0+cnhIZWFkZXIy LCAwKTsKIAkJCQllZGdlX3NlcmlhbC0+cnhTdGF0ZSA9IEVYUEVDVF9IRFIxOwogCQkJCWJyZWFr OwotCQkJfSBlbHNlIHsKLQkJCQllZGdlX3NlcmlhbC0+cnhQb3J0ID0KLQkJCQkgICAgSU9TUF9H RVRfSERSX1BPUlQoZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMSk7Ci0JCQkJZWRnZV9zZXJpYWwtPnJ4 Qnl0ZXNSZW1haW5pbmcgPQotCQkJCSAgICBJT1NQX0dFVF9IRFJfREFUQV9MRU4oCi0JCQkJCQll ZGdlX3NlcmlhbC0+cnhIZWFkZXIxLAotCQkJCQkJZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMik7Ci0J CQkJZGV2X2RiZyhkZXYsICIlcyAtIERhdGEgZm9yIFBvcnQgJXUgTGVuICV1XG4iLAotCQkJCQlf X2Z1bmNfXywKLQkJCQkJZWRnZV9zZXJpYWwtPnJ4UG9ydCwKLQkJCQkJZWRnZV9zZXJpYWwtPnJ4 Qnl0ZXNSZW1haW5pbmcpOwotCi0JCQkJLyogQVNTRVJUKERldkV4dC0+UnhQb3J0IDwgRGV2RXh0 LT5OdW1Qb3J0cyk7Ci0JCQkJICogQVNTRVJUKERldkV4dC0+UnhCeXRlc1JlbWFpbmluZyA8Ci0J CQkJICoJCUlPU1BfTUFYX0RBVEFfTEVOR1RIKTsKLQkJCQkgKi8KLQotCQkJCWlmIChidWZmZXJM ZW5ndGggPT0gMCkgewotCQkJCQllZGdlX3NlcmlhbC0+cnhTdGF0ZSA9IEVYUEVDVF9EQVRBOwot CQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJLyogRWxzZSwgZHJvcCB0aHJvdWdoICovCiAJCQl9CisK KwkJCWVkZ2Vfc2VyaWFsLT5yeFBvcnQgPSBJT1NQX0dFVF9IRFJfUE9SVChlZGdlX3NlcmlhbC0+ cnhIZWFkZXIxKTsKKwkJCWVkZ2Vfc2VyaWFsLT5yeEJ5dGVzUmVtYWluaW5nID0gSU9TUF9HRVRf SERSX0RBVEFfTEVOKGVkZ2Vfc2VyaWFsLT5yeEhlYWRlcjEsCisJCQkJCQkJCQkgICAgICBlZGdl X3NlcmlhbC0+cnhIZWFkZXIyKTsKKwkJCWRldl9kYmcoZGV2LCAiJXMgLSBEYXRhIGZvciBQb3J0 ICV1IExlbiAldVxuIiwgX19mdW5jX18sCisJCQkJZWRnZV9zZXJpYWwtPnJ4UG9ydCwKKwkJCQll ZGdlX3NlcmlhbC0+cnhCeXRlc1JlbWFpbmluZyk7CisKKwkJCWlmIChidWZmZXJMZW5ndGggPT0g MCkgeworCQkJCWVkZ2Vfc2VyaWFsLT5yeFN0YXRlID0gRVhQRUNUX0RBVEE7CisJCQkJYnJlYWs7 CisJCQl9CisJCQkvKiBGYWxsIHRocm91Z2ggKi8KKwogCQljYXNlIEVYUEVDVF9EQVRBOiAvKiBF eHBlY3QgZGF0YSAqLwogCQkJaWYgKGJ1ZmZlckxlbmd0aCA8IGVkZ2Vfc2VyaWFsLT5yeEJ5dGVz UmVtYWluaW5nKSB7CiAJCQkJcnhMZW4gPSBidWZmZXJMZW5ndGg7Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,T_DKIMWL_WL_HIGH,USER_AGENT_MUTT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C2BCC43219 for ; Thu, 2 May 2019 14:47:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EF41820644 for ; Thu, 2 May 2019 14:47:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556808454; bh=mUEsG/SRoI8Ieb161/tWDISH+t6jDgm6B4+KcuOh3AU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=AWOlSE5hgYy6MPRZQUQ82LLV3+Q4z4hOfukiTViiMWSCQHFdbvMRvvNIAB9+OS72Y L1ENAjfNXZTBk0Pc0T1W9t4THVPWIngg+/1lcXQmKi+rzGr7CgDJZD3GdeyAPqrpJm he7BKGmjlXSV0AyTL6oNx7W6MvtwVHBHrzB3kn/w= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726268AbfEBOrd (ORCPT ); Thu, 2 May 2019 10:47:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:54982 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726197AbfEBOrd (ORCPT ); Thu, 2 May 2019 10:47:33 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 588FB20651; Thu, 2 May 2019 14:47:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556808451; bh=mUEsG/SRoI8Ieb161/tWDISH+t6jDgm6B4+KcuOh3AU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=daoNFnVLgHi38BNQTCjcJHVMB3FJn5fa190DI9hpsfgdcKxn3knE8h6al6P4cILPh f+Z1Xany8A1U7D87Tn8muq7h7PpYkrXw8ctMwqk6+VzBfxF7XURgRPPILL+BpxRZ5X jToGz+zj+t/AOVd7od5hCcDaJIs66thXngIokvGg= Date: Thu, 2 May 2019 16:47:29 +0200 From: Greg Kroah-Hartman To: "Gustavo A. R. Silva" Cc: Johan Hovold , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Kees Cook Subject: Re: [PATCH v2] USB: serial: io_edgeport: mark expected switch fall-throughs Message-ID: <20190502144729.GB17960@kroah.com> References: <20190501213329.GA26972@embeddedor> <20190502102608.GS26546@localhost> <20190502135636.GT26546@localhost> <20190502144041.GA17960@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190502144041.GA17960@kroah.com> User-Agent: Mutt/1.11.4 (2019-03-13) Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Message-ID: <20190502144729.n4RhG2FvNItjk8eHas7iRTVfbG5dyeP4_RCHgHbL-98@z> On Thu, May 02, 2019 at 04:40:41PM +0200, Greg Kroah-Hartman wrote: > On Thu, May 02, 2019 at 09:28:37AM -0500, Gustavo A. R. Silva wrote: > > > > > > On 5/2/19 8:56 AM, Johan Hovold wrote: > > > On Thu, May 02, 2019 at 08:22:30AM -0500, Gustavo A. R. Silva wrote: > > >> > > >> > > >> On 5/2/19 5:26 AM, Johan Hovold wrote: > > >>> On Wed, May 01, 2019 at 04:33:29PM -0500, Gustavo A. R. Silva wrote: > > >>>> In preparation to enabling -Wimplicit-fallthrough, mark switch > > >>>> cases where we are expecting to fall through. > > >>>> > > >>>> This patch fixes the following warnings: > > >>>> > > >>>> drivers/usb/serial/io_edgeport.c: In function ‘process_rcvd_data’: > > >>>> drivers/usb/serial/io_edgeport.c:1750:7: warning: this statement may fall through [-Wimplicit-fallthrough=] > > >>>> if (bufferLength == 0) { > > >>>> ^ > > >>>> drivers/usb/serial/io_edgeport.c:1755:3: note: here > > >>>> case EXPECT_HDR2: > > >>>> ^~~~ > > >>>> drivers/usb/serial/io_edgeport.c:1810:8: warning: this statement may fall through [-Wimplicit-fallthrough=] > > >>>> if (bufferLength == 0) { > > >>>> ^ > > >>>> drivers/usb/serial/io_edgeport.c:1816:3: note: here > > >>>> case EXPECT_DATA: /* Expect data */ > > >>>> ^~~~ > > >>>> > > >>>> Warning level 3 was used: -Wimplicit-fallthrough=3 > > >>>> > > >>>> Notice that, in this particular case, the code comments are modified > > >>>> in accordance with what GCC is expecting to find. > > >>>> > > >>>> This patch is part of the ongoing efforts to enable > > >>>> -Wimplicit-fallthrough. > > >>>> > > >>>> Signed-off-by: Gustavo A. R. Silva > > >>>> --- > > >>>> Changes in v2: > > >>>> - Warning level 3 is now used: -Wimplicit-fallthrough=3 > > >>>> instead of warning level 2. > > >>>> - All warnings in the switch statement are addressed now. > > >>>> > > >>>> Notice that these are the last remaining fall-through warnings > > >>>> in the USB subsystem. :) > > >>> > > >>>> drivers/usb/serial/io_edgeport.c | 3 ++- > > >>>> 1 file changed, 2 insertions(+), 1 deletion(-) > > >>>> > > >>>> diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c > > >>>> index 4ca31c0e4174..7ad10328f4e2 100644 > > >>>> --- a/drivers/usb/serial/io_edgeport.c > > >>>> +++ b/drivers/usb/serial/io_edgeport.c > > >>>> @@ -1751,7 +1751,7 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial, > > >>>> edge_serial->rxState = EXPECT_HDR2; > > >>>> break; > > >>>> } > > >>>> - /* otherwise, drop on through */ > > >>>> + /* Fall through - otherwise, drop on through */ > > >>>> case EXPECT_HDR2: > > >>>> edge_serial->rxHeader2 = *buffer; > > >>>> ++buffer; > > >>>> @@ -1813,6 +1813,7 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial, > > >>>> } > > >>>> /* Else, drop through */ > > >>>> } > > >>>> + /* Fall through */ > > >>>> case EXPECT_DATA: /* Expect data */ > > >>> > > >>> Looks like you forgot to take the original review feedback you got into > > >>> account: > > >>> > > >>> https://lkml.kernel.org/r/87k1zf4k24.fsf@miraculix.mork.no > > >>> > > >> > > >> Oh, the thing is that the fall-through comments have to be placed at > > >> the very bottom of the case. Also, based on that feedback, this time > > >> I left the "Else, drop through" comment in place, so people can be > > >> informed that such fall-through is conditional. > > >> > > >> What do you think about this: > > >> > > >> diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c > > >> index 4ca31c0e4174..52f27fc82563 100644 > > >> --- a/drivers/usb/serial/io_edgeport.c > > >> +++ b/drivers/usb/serial/io_edgeport.c > > >> @@ -1751,7 +1751,7 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial, > > >> edge_serial->rxState = EXPECT_HDR2; > > >> break; > > >> } > > >> - /* otherwise, drop on through */ > > >> + /* Fall through - otherwise, drop on through */ > > >> case EXPECT_HDR2: > > >> edge_serial->rxHeader2 = *buffer; > > >> ++buffer; > > >> @@ -1813,6 +1813,11 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial, > > >> } > > >> /* Else, drop through */ > > >> } > > >> + /* Beware that, currently, there are at least three > > >> + * break statements in this case block, so the > > >> + * fall-through marked below is NOT unconditional. > > >> + */ > > >> + /* Fall through */ > > >> case EXPECT_DATA: /* Expect data */ > > >> if (bufferLength < edge_serial->rxBytesRemaining) { > > >> rxLen = bufferLength; > > > > > > It's better than v2, but I thought you said you were gonna look into > > > restructuring the code to maintain (or even improve) readability? > > > > > > > At first, I thought about that, but now I don't think that's realistic. > > I'd turn the if-else into a switch, and based on the history of feedback > > on this patch, we will end up having the same complains about the break > > statements in that new switch and the possibility of a fall-through to > > case EXPECT_DATA. At the end I would still have to add a comment explaining > > that the last fall-through mark in unconditional. > > I love it how no one is blaming the original author of this code (i.e. > me...) > > Let me see if I can fix it up to be more "sane", this is my fault. How about the following patch? Johan, this look nicer to you? It makes more sense to me. And in looking at the history, I can't claim total credit for this monstrosity, it was originally written by someone else, I just "cleaned it up" back in 2001, to get it into mergable shape. Clearly "mergable shape" was much looser back then :) thanks, greg k-h ---------------- diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c index 4ca31c0e4174..732081b3718f 100644 --- a/drivers/usb/serial/io_edgeport.c +++ b/drivers/usb/serial/io_edgeport.c @@ -1751,7 +1751,8 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial, edge_serial->rxState = EXPECT_HDR2; break; } - /* otherwise, drop on through */ + /* Fall through */ + case EXPECT_HDR2: edge_serial->rxHeader2 = *buffer; ++buffer; @@ -1790,29 +1791,21 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial, edge_serial->rxHeader2, 0); edge_serial->rxState = EXPECT_HDR1; break; - } else { - edge_serial->rxPort = - IOSP_GET_HDR_PORT(edge_serial->rxHeader1); - edge_serial->rxBytesRemaining = - IOSP_GET_HDR_DATA_LEN( - edge_serial->rxHeader1, - edge_serial->rxHeader2); - dev_dbg(dev, "%s - Data for Port %u Len %u\n", - __func__, - edge_serial->rxPort, - edge_serial->rxBytesRemaining); - - /* ASSERT(DevExt->RxPort < DevExt->NumPorts); - * ASSERT(DevExt->RxBytesRemaining < - * IOSP_MAX_DATA_LENGTH); - */ - - if (bufferLength == 0) { - edge_serial->rxState = EXPECT_DATA; - break; - } - /* Else, drop through */ } + + edge_serial->rxPort = IOSP_GET_HDR_PORT(edge_serial->rxHeader1); + edge_serial->rxBytesRemaining = IOSP_GET_HDR_DATA_LEN(edge_serial->rxHeader1, + edge_serial->rxHeader2); + dev_dbg(dev, "%s - Data for Port %u Len %u\n", __func__, + edge_serial->rxPort, + edge_serial->rxBytesRemaining); + + if (bufferLength == 0) { + edge_serial->rxState = EXPECT_DATA; + break; + } + /* Fall through */ + case EXPECT_DATA: /* Expect data */ if (bufferLength < edge_serial->rxBytesRemaining) { rxLen = bufferLength;