From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luben Tuikov Subject: Re: Handling erroneous READ CAPACITY response in sd.c Date: Mon, 25 Oct 2004 16:55:18 -0400 Sender: linux-scsi-owner@vger.kernel.org Message-ID: <417D6836.80509@adaptec.com> References: <417BA172.40203@ping-viini.org> <417D5D4D.5000400@adaptec.com> <417D6123.4060902@ping-viini.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010606090400070201010302" Return-path: Received: from magic.adaptec.com ([216.52.22.17]:23761 "EHLO magic.adaptec.com") by vger.kernel.org with ESMTP id S262024AbUJYUza (ORCPT ); Mon, 25 Oct 2004 16:55:30 -0400 In-Reply-To: <417D6123.4060902@ping-viini.org> List-Id: linux-scsi@vger.kernel.org To: Eero Volotinen , SCSI Mailing List Cc: Alan Stern This is a multi-part message in MIME format. --------------010606090400070201010302 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Eero Volotinen wrote: > >> Eero, can you try the attached patch? I wonder if we >> can take the maximum capacity media which could be supported? >> (This is "patch 2", you still have to apply "patch 1" which >> removes the broken devices from unusual devs.) >> >> Thanks, >> Luben >> > > Ok. I test your patch in a few days and report results then. Forgot to add code to weed out the descriptor type 0 (reserved) case. Please try this (attached) version of the patch. Thanks, Luben --------------010606090400070201010302 Content-Type: application/octet-stream; name="cap.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="cap.patch" PT09PT0gZHJpdmVycy9zY3NpL3NkLmMgMS4xNjEgdnMgZWRpdGVkID09PT09Ci0tLSAxLjE2 MS9kcml2ZXJzL3Njc2kvc2QuYwkyMDA0LTEwLTE1IDEwOjQ2OjA3IC0wNDowMAorKysgZWRp dGVkL2RyaXZlcnMvc2NzaS9zZC5jCTIwMDQtMTAtMjUgMTc6MDE6MDMgLTA0OjAwCkBAIC05 ODcsNiArOTg3LDE1NSBAQAogCX0KIH0KIAorLyogc2RfcmVhZF90cnVlX2NhcDogU29tZSBk ZXZpY2Ugc2VydmVycyBpbmNvcnJlY3RseSByZXR1cm4gdGhlCisgKiBjYXBhY2l0eSBhcyBv cHBvc2VkIHRvIHRoZSBMQkEgb2YgdGhlIGxhc3QgbG9naWNhbCBibG9jayBvZiB0aGUKKyAq IGJsb2NrIGRldmljZS4KKyAqCisgKiBXZSB0cnkgdG8gZml4IHRoaXMgYXMgZm9sbG93czog TGV0IHggPSBSZXR1cm5lZCBMQkEgZnJvbSB0aGUgbGFzdAorICogUkVBRCBDQVBBQ0lUWSBj b21tYW5kIGlzc3VlZCAocmVzdWx0IGluICJidWZmZXIiKS4gIFJlaXNzdWUgdGhlCisgKiBS RUFEIENBUEFDSVRZIGNvbW1hbmQgYXMgZm9sbG93czogc2V0IHRoZSBwYXJ0aWFsIG1lZGl1 bSBpbmRpY2F0b3IKKyAqIChQTUkpIGJpdCB0byBvbmU7IHNldCB0aGUgTEJBIHRvIHggLSAx LiBGaXJlIG9mZiB0aGF0IFJFQUQgQ0FQQUNJVFkKKyAqIGNvbW1hbmQuCisgKgorICogSWYg d2UgZ2V0IHN1Y2Nlc3MsCisgKiAgICAgICBJZiBSZXR1cm5lZCBMQkEgPiB4IC0gMSwgdGhl biBjYXBhY2l0eSBpcyB4KzEsIHNwZWMgYmVoYXZpb3IuCisgKiAgICAgICBFbHNlIFJldHVy bmVkIExCQSA8PSB4IC0gMSwgdGhlbiBjYXBhY2l0eSBpcyB4LCBicm9rZW4gZGV2aWNlIHNl cnZlci4KKyAqIEVsc2UgZXJyb3IsIG5vdGhpbmcgY2FuIGJlIGFzc3VtZWQsIGNhcGFjaXR5 IGlzIHgrMS4KKyAqLworc3RhdGljIHZvaWQgc2RfcmVhZF90cnVlX2NhcChzdHJ1Y3Qgc2Nz aV9kaXNrICpzZCwgY2hhciAqZGlza25hbWUsCisJCQkgICAgIHN0cnVjdCBzY3NpX3JlcXVl c3QgKlNScG50LCB1bnNpZ25lZCBjaGFyICpidWZmZXIsCisJCQkgICAgIGludCBsb25ncmMp Cit7CisJdW5zaWduZWQgY2hhciBjbWRbMTZdOworCXVuc2lnbmVkIGNoYXIgYnVmWzEyXTsK KworCS8qIHNhdmUgdGhlIG9sZCBidWZmZXIgY29udGVudHMgaGVyZSAqLworCW1lbWNweShi dWYsIGJ1ZmZlciwgMTIpOworCisJaWYgKGxvbmdyYykgeworCQl1NjQgKmxiYSA9ICh1NjQg KikgKGNtZCsyKTsKKwkJdTY0IHJsYmE7CisKKwkJbWVtc2V0KCh2b2lkICopIGNtZCwgMCwg MTYpOworCQljbWRbMF0gPSBTRVJWSUNFX0FDVElPTl9JTjsKKwkJY21kWzFdID0gU0FJX1JF QURfQ0FQQUNJVFlfMTY7CisJCWNtZFsxM10gPSAxMjsKKworCQlybGJhID0gYmU2NF90b19j cHUoKih1NjQgKilidWZmZXIpOworCQlybGJhIC09IDE7CisJCSpsYmEgPSBjcHVfdG9fYmU2 NChybGJhKTsKKwkJLyogdHVybiBvbiB0aGUgUE1JIGJpdCAqLworCQljbWRbMTRdIHw9IDE7 CisJCW1lbXNldCgodm9pZCAqKSBidWZmZXIsIDAsIDEyKTsKKwl9IGVsc2UgeworCQl1MzIg KmxiYSA9ICh1MzIgKikgKGNtZCsyKTsKKwkJdTMyIHJsYmE7CisKKwkJY21kWzBdID0gUkVB RF9DQVBBQ0lUWTsKKwkJbWVtc2V0KCh2b2lkICopICZjbWRbMV0sIDAsIDkpOworCQkKKwkJ cmxiYSA9IGJlMzJfdG9fY3B1KCoodTMyICopYnVmZmVyKTsKKwkJcmxiYSAtPSAxOworCQkq bGJhID0gY3B1X3RvX2JlMzIocmxiYSk7CisJCS8qIHR1cm4gb24gdGhlIFBNSSBiaXQgKi8K KwkJY21kWzhdIHw9IDE7CisJCW1lbXNldCgodm9pZCAqKSBidWZmZXIsIDAsIDgpOworCX0K KworCVNScG50LT5zcl9jbWRfbGVuID0gMDsKKwlTUnBudC0+c3Jfc2Vuc2VfYnVmZmVyWzBd ID0gMDsKKwlTUnBudC0+c3Jfc2Vuc2VfYnVmZmVyWzJdID0gMDsKKwlTUnBudC0+c3JfZGF0 YV9kaXJlY3Rpb24gPSBETUFfRlJPTV9ERVZJQ0U7CisJCisJc2NzaV93YWl0X3JlcShTUnBu dCwgKHZvaWQgKikgY21kLCAodm9pZCAqKSBidWZmZXIsCisJCSAgICAgIGxvbmdyYyA/IDEy IDogOCwgU0RfVElNRU9VVCwgU0RfTUFYX1JFVFJJRVMpOworCisJaWYgKFNScG50LT5zcl9y ZXN1bHQpIHsKKwkJLyogTm90aGluZyBjYW4gYmUgYXNzdW1lZC4gKi8KKwkJcHJpbnRrKEtF Uk5fTk9USUNFICIlczogJXM6IFBNSSBub3Qgc3VwcG9ydGVkXG4iLAorCQkgICAgICAgX19G VU5DVElPTl9fLCBkaXNrbmFtZSk7CisJCW1lbWNweShidWZmZXIsIGJ1ZiwgMTIpOworCQly ZXR1cm47CisJfQorCisJaWYgKGxvbmdyYykgeworCQl1NjQgcmxiYSA9IGJlNjRfdG9fY3B1 KCoodTY0ICopYnVmZmVyKTsKKwkJdTY0IHggICAgPSBiZTY0X3RvX2NwdSgqKHU2NCAqKWJ1 Zik7CisJCWlmIChybGJhID4geCAtIDEpIHsKKwkJCWdvdG8gb3V0X3NwZWM7CisJCX0KKwl9 IGVsc2UgeworCQl1MzIgcmxiYSA9IGJlMzJfdG9fY3B1KCoodTMyICopYnVmZmVyKTsKKwkJ dTMyIHggICAgPSBiZTMyX3RvX2NwdSgqKHUzMiAqKWJ1Zik7CisJCWlmIChybGJhID4geCAt IDEpIHsKKwkJCWdvdG8gb3V0X3NwZWM7CisJCX0KKwl9CisJcHJpbnRrKEtFUk5fTk9USUNF ICIlczogJXM6IGJyb2tlbiBkZXZpY2Ugc2VydmVyXG4iLCBfX0ZVTkNUSU9OX18sCisJICAg ICAgIGRpc2tuYW1lKTsKKwlyZXR1cm47CisKKyBvdXRfc3BlYzoKKwkvKiBDYXBhY2l0eSBp cyB4KzEsIHNwZWMgYmVoYXZpb3IuICovCisJcHJpbnRrKEtFUk5fTk9USUNFICIlczogJXM6 IHNwZWMgYmVoYXZpb3JcbiIsIF9fRlVOQ1RJT05fXywgZGlza25hbWUpOworCW1lbWNweShi dWZmZXIsIGJ1ZiwgMTIpOworfSAvKiBlbmQgc2RfcmVhZF90cnVlX2NhcCgpICovCisKKwor LyogVHJ5IHRvIHVzZSB0aGUgUkVBRCBGT1JNQVQgQ0FQQUNJVElFUyBjb21tYW5kIHRvIGNo ZWNrIHdoZXRoZXIgdGhlCisgKiBSRUFEIENBUEFDSVRZIHJlc3VsdCBpcyBjb3JyZWN0Lgor ICovCitzdGF0aWMgdm9pZCBzZF9yZWFkX2Zvcm1hdF9jYXAoc3RydWN0IHNjc2lfZGlzayAq c2QsIGNoYXIgKmRpc2tuYW1lLAorCQkgICAgICAgc3RydWN0IHNjc2lfcmVxdWVzdCAqU1Jw bnQsIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlcikKK3sKKwl1bnNpZ25lZCBjaGFyIGNtZFsxMl07 CisJdW5zaWduZWQgY2hhciBidWZbMTJdOworCXUzMiBybGJhOworCXUzMiB4OworCisJLyog c2F2ZSB0aGUgb2xkIGJ1ZmZlciBjb250ZW50cyBoZXJlICovCisJbWVtY3B5KGJ1ZiwgYnVm ZmVyLCAxMik7CisKKwlybGJhID0gYmUzMl90b19jcHUoKih1MzIgKilidWZmZXIpOworCisJ Y21kWzBdID0gMHgyMzsgICAgICAgICAgLyogUkVBRF9GT1JNQVRfQ0FQQUNJVElFUyAqLwor CW1lbXNldCgmY21kWzFdLCAwLCAxMSk7CisJY21kWzhdID0gMTI7CisJbWVtc2V0KGJ1ZmZl ciwgMCwgMTIpOworCisJU1JwbnQtPnNyX2NtZF9sZW4gPSAwOworCVNScG50LT5zcl9zZW5z ZV9idWZmZXJbMF0gPSAwOworCVNScG50LT5zcl9zZW5zZV9idWZmZXJbMl0gPSAwOworCVNS cG50LT5zcl9kYXRhX2RpcmVjdGlvbiA9IERNQV9GUk9NX0RFVklDRTsKKworCXNjc2lfd2Fp dF9yZXEoU1JwbnQsICh2b2lkICopIGNtZCwgKHZvaWQgKikgYnVmZmVyLAorCQkgICAgICAx MiwgU0RfVElNRU9VVCwgU0RfTUFYX1JFVFJJRVMpOworCisJaWYgKFNScG50LT5zcl9yZXN1 bHQpIHsKKwkJLyogTm90aGluZyBjYW4gYmUgYXNzdW1lZC4gKi8KKwkJcHJpbnRrKEtFUk5f Tk9USUNFICIlczogJXM6IFJFQUQgRk9STUFUIENBUEFDSVRJRVMgIgorCQkgICAgICAgIm5v dCBzdXBwb3J0ZWRcbiIsIF9fRlVOQ1RJT05fXywgZGlza25hbWUpOworCQlnb3RvIGRvbmU7 CisJfQorCisJaWYgKChidWZmZXJbOF0gJiAzKSA9PSAwKQorCQlnb3RvIGRvbmU7CisKKwl4 ID0gYmUzMl90b19jcHUoKih1MzIgKikoYnVmZmVyICsgNCkpOworCXByaW50ayhLRVJOX05P VElDRSAiJXM6ICVzOiAldSB2cy4gJXVcbiIsCisJICAgICAgIF9fRlVOQ1RJT05fXywgZGlz a25hbWUsIHJsYmEsIHgpOworCWlmICgwIDwgeCAmJiB4IDw9IHJsYmEpIHsKKwkJdTMyICps YmEgPSAodTMyICopIGJ1ZjsKKwkJCisJCXByaW50ayhLRVJOX05PVElDRSAiJXM6ICVzOiB1 c2luZyBsb3dlciBjYXBhY2l0eVxuIiwKKwkJICAgICAgIF9fRlVOQ1RJT05fXywgZGlza25h bWUpOworCQl4IC09IDE7CisJCSpsYmEgPSBjcHVfdG9fYmUzMih4KTsKKwl9CisgZG9uZToK KyAJbWVtY3B5KGJ1ZmZlciwgYnVmLCAxMik7Cit9CisKIC8qCiAgKiByZWFkIGRpc2sgY2Fw YWNpdHkKICAqLwpAQCAtMTA3MCw3ICsxMjE5LDE0IEBACiAJCQogCQlzZGtwLT5jYXBhY2l0 eSA9IDEgKyAoc2VjdG9yX3QpIDB4ZmZmZmZmZmY7CQkKIAkJZ290byBnb3RfZGF0YTsKLQl9 CQorCX0KKworCS8qIENoZWNrIGlmIHRoZSBkZXZpY2UgcmVwb3J0ZWQgQ0FQQUNJVFkgYXMg b3Bwb3NlZCB0bworCSAqIHRoZSBtYXh1bXVtIExCQSAoYXMgcGVyIHRoZSBTQkMgc3BlYyku CisJICovCisJc2RfcmVhZF90cnVlX2NhcChzZGtwLCBkaXNrbmFtZSwgU1JwbnQsIGJ1ZmZl ciwgbG9uZ3JjKTsKKyAJaWYgKCFsb25ncmMpCisgCQlzZF9yZWFkX2Zvcm1hdF9jYXAoc2Rr cCwgZGlza25hbWUsIFNScG50LCBidWZmZXIpOwogCQogCWlmICghbG9uZ3JjKSB7CiAJCXNl Y3Rvcl9zaXplID0gKGJ1ZmZlcls0XSA8PCAyNCkgfApAQCAtMTA3OCwxMiArMTIzNCwxNCBA QAogCQlpZiAoYnVmZmVyWzBdID09IDB4ZmYgJiYgYnVmZmVyWzFdID09IDB4ZmYgJiYKIAkJ ICAgIGJ1ZmZlclsyXSA9PSAweGZmICYmIGJ1ZmZlclszXSA9PSAweGZmKSB7CiAJCQlpZihz aXplb2Yoc2RrcC0+Y2FwYWNpdHkpID4gNCkgewotCQkJCXByaW50ayhLRVJOX05PVElDRSAi JXMgOiB2ZXJ5IGJpZyBkZXZpY2UuIHRyeSB0byB1c2UiCi0JCQkJICAgICAgICIgUkVBRCBD QVBBQ0lUWSgxNikuXG4iLCBkaXNrbmFtZSk7CisJCQkJcHJpbnRrKEtFUk5fTk9USUNFICIl cyA6IHZlcnkgYmlnIGRldmljZS4gIgorCQkJCSAgICAgICAidHJ5IHRvIHVzZSBSRUFEIENB UEFDSVRZKDE2KS5cbiIsCisJCQkJICAgICAgIGRpc2tuYW1lKTsKIAkJCQlsb25ncmMgPSAx OwogCQkJCWdvdG8gcmVwZWF0OwogCQkJfSBlbHNlIHsKLQkJCQlwcmludGsoS0VSTl9FUlIg IiVzOiB0b28gYmlnIGZvciBrZXJuZWwuICBBc3N1bWluZyBtYXhpbXVtIDJUYlxuIiwgZGlz a25hbWUpOworCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IHRvbyBiaWcgZm9yIGtlcm5lbC4g IgorCQkJCSAgICAgICAiQXNzdW1pbmcgbWF4aW11bSAyVGJcbiIsIGRpc2tuYW1lKTsKIAkJ CX0KIAkJfQogCQlzZGtwLT5jYXBhY2l0eSA9IDEgKyAoKChzZWN0b3JfdClidWZmZXJbMF0g PDwgMjQpIHwKQEAgLTExMDIsNyArMTI2MCw3IEBACiAJCQkKIAkJc2VjdG9yX3NpemUgPSAo YnVmZmVyWzhdIDw8IDI0KSB8CiAJCQkoYnVmZmVyWzldIDw8IDE2KSB8IChidWZmZXJbMTBd IDw8IDgpIHwgYnVmZmVyWzExXTsKLQl9CQorCX0KIAogZ290X2RhdGE6CiAJaWYgKHNlY3Rv cl9zaXplID09IDApIHsK --------------010606090400070201010302--