non-IDE CD-ROM (sbpcd, cm206, cdu31) lock ups

Mike Jagdis (mike@roan.co.uk)
Mon, 14 Sep 1998 15:07:04 +0100 (GMT/BST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--279709697-1861676658-905782024=:28287
Content-Type: TEXT/PLAIN; charset=US-ASCII

Ok, I've looked at all the old CD-ROM drivers and there only
appear to be these three that, obviously, have the enable
interrupts without releasing io_request_lock problem. The
sbpcd driver is the only one I've tested since the only drives
I have are the old IBM external CR563s. Without the patch the
system will lock up pretty quickly. I've hammered it pretty
hard with it without a problem.

The cdu31 driver does the same as the sbpcd driver so the
fix should be straight forward. The cm206 problem is a little
more obscure. There is no sti in the request handler itself
but if it hits the CD it does a receive_byte which does an
unconditional cli then sti :-(. You _could_ fix it by using
save_flags, restore_flags I think but that would give
hideous interrupt latency. Since interrupts get magically
enabled in the middle of a loop in the request handler
I think it is safe, and best, to release the io_request_lock
before the loop which is what this patch does. We probably
_should_ be using save_flags, restore_flags as well anyway
but this has never bothered anyone before...

Anyway, shout if there is a problem :-).

Mike

P.S. Linus, I sent the sbpcd.c portion of the patch before so
ignore rejects :-).

P.P.S. The sbcpd.c spin_unlock, spin_lock have FIXME comments
because scsi/sr.c has them. I'm not sure why it needs fixing?

-- 
.----------------------------------------------------------------------.
|  Mike Jagdis                  |  Internet:  mailto:mike@roan.co.uk   |
|  Roan Technology Ltd.         |                                      |
|  54A Peach Street, Wokingham  |  Telephone:  +44 118 989 0403        |
|  RG40 1XG, ENGLAND            |  Fax:        +44 118 989 1195        |
`----------------------------------------------------------------------'

--279709697-1861676658-905782024=:28287 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="cdrom.diff" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.3.91.980914150704.28287E@toaster.roan.co.uk> Content-Description: non-IDE CD-ROM lock up fixes

ZGlmZiAtdXIgY2Ryb20ub2xkL2NkdTMxYS5jIGNkcm9tL2NkdTMxYS5jDQot LS0gZHJpdmVycy9jZHJvbS5vbGQvY2R1MzFhLmMJU2F0IEF1ZyAgMSAxNDo1 ODozNCAxOTk4DQorKysgZHJpdmVycy9jZHJvbS9jZHUzMWEuYwlUaHUgU2Vw IDEwIDIwOjUwOjIxIDE5OTgNCkBAIC0xNjAsNiArMTYwLDcgQEANCiAjaW5j bHVkZSA8bGludXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L21hbGxv Yy5oPg0KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQorI2luY2x1ZGUgPGxp bnV4L2ludGVycnVwdC5oPg0KIA0KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+ DQogI2luY2x1ZGUgPGFzbS9pby5oPg0KQEAgLTE2OTAsNyArMTY5MSw3IEBA DQogICAgLyogTWFrZSBzdXJlIHdlIGhhdmUgYSB2YWxpZCBUT0MuICovDQog ICAgc29ueV9nZXRfdG9jKCk7IA0KIA0KLSAgIHN0aSgpOw0KKyAgIHNwaW5f dW5sb2NrX2lycSgmaW9fcmVxdWVzdF9sb2NrKTsNCiANCiAgICAvKiBNYWtl IHN1cmUgdGhlIHRpbWVyIGlzIGNhbmNlbGxlZC4gKi8NCiAgICBkZWxfdGlt ZXIoJmNkdTMxYV9hYm9ydF90aW1lcik7DQpAQCAtMTg0OSw3ICsxODUwLDcg QEANCiAgICB9DQogDQogZW5kX2RvX2NkdTMxYV9yZXF1ZXN0Og0KLSAgIGNs aSgpOw0KKyAgIHNwaW5fbG9ja19pcnEoJmlvX3JlcXVlc3RfbG9jayk7DQog I2lmIDANCiAgICAvKiBBZnRlciBmaW5pc2hlZCwgY2FuY2VsIGFueSBwZW5k aW5nIG9wZXJhdGlvbnMuICovDQogICAgYWJvcnRfcmVhZCgpOw0KZGlmZiAt dXIgY2Ryb20ub2xkL2NtMjA2LmMgY2Ryb20vY20yMDYuYw0KLS0tIGRyaXZl cnMvY2Ryb20ub2xkL2NtMjA2LmMJTW9uIEp1biAyMiAyMzo0MjoxNSAxOTk4 DQorKysgZHJpdmVycy9jZHJvbS9jbTIwNi5jCVRodSBTZXAgMTAgMjE6MDM6 MTggMTk5OA0KQEAgLTE4Niw2ICsxODYsNyBAQA0KICNpbmNsdWRlIDxsaW51 eC9tbS5oPg0KICNpbmNsdWRlIDxsaW51eC9tYWxsb2MuaD4NCiAjaW5jbHVk ZSA8bGludXgvaW5pdC5oPg0KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQu aD4NCiANCiAvKiAjaW5jbHVkZSA8bGludXgvdWNkcm9tLmg+ICovDQogDQpA QCAtODE2LDYgKzgxNyw3IEBADQogICAgICAgZW5kX3JlcXVlc3QoMCk7DQog ICAgICAgY29udGludWU7DQogICAgIH0NCisgICAgc3Bpbl91bmxvY2tfaXJx KCZpb19yZXF1ZXN0X2xvY2spOw0KICAgICBlcnJvcj0wOw0KICAgICBmb3Ig KGk9MDsgaTxDVVJSRU5ULT5ucl9zZWN0b3JzOyBpKyspIHsNCiAgICAgICBp bnQgZTEsIGUyOw0KQEAgLTgzOCw2ICs4NDAsNyBAQA0KIAlkZWJ1ZygoImNt MjA2X3JlcXVlc3Q6ICVkICVkXG4iLCBlMSwgZTIpKTsNCiAgICAgICB9DQog ICAgIH0NCisgICAgc3Bpbl9sb2NrX2lycSgmaW9fcmVxdWVzdF9sb2NrKTsN CiAgICAgZW5kX3JlcXVlc3QoIWVycm9yKTsNCiAgIH0NCiB9DQpkaWZmIC11 ciBjZHJvbS5vbGQvc2JwY2QuYyBjZHJvbS9zYnBjZC5jDQotLS0gZHJpdmVy cy9jZHJvbS5vbGQvc2JwY2QuYwlUaHUgU2VwIDEwIDIwOjQyOjA2IDE5OTgN CisrKyBkcml2ZXJzL2Nkcm9tL3NicGNkLmMJU3VuIFNlcCAgNiAyMjozMTo0 MyAxOTk4DQpAQCAtMzM2LDYgKzMzNiw3IEBADQogI2luY2x1ZGUgPGxpbnV4 L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L2luaXQuaD4NCisjaW5jbHVkZSA8bGludXgvaW50ZXJy dXB0Lmg+DQogDQogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4NCiAjaW5jbHVk ZSA8YXNtL2lvLmg+DQpAQCAtMTQ4NywxMyArMTQ4OCwxNCBAQA0KIAkNCiAJ aWYgKGZsYWdzX2NtZF9vdXQmZl9wdXRjbWQpDQogCXsgDQorCQl1bnNpZ25l ZCBsb25nIGZsYWdzOw0KIAkJZm9yIChpPTA7aTw3O2krKykNCiAJCQlzcHJp bnRmKCZtc2didWZbaSozXSwgIiAlMDJYIiwgZHJ2Y21kW2ldKTsNCiAJCW1z Z2J1ZltpKjNdPTA7DQogCQltc2coREJHX0NNRCwiY21kX291dDolc1xuIiwg bXNnYnVmKTsNCi0JCWNsaSgpOw0KKwkJc2F2ZV9mbGFncyhmbGFncyk7IGNs aSgpOw0KIAkJZm9yIChpPTA7aTw3O2krKykgT1VUKENEb19jb21tYW5kLGRy dmNtZFtpXSk7DQotCQlzdGkoKTsNCisJCXJlc3RvcmVfZmxhZ3MoZmxhZ3Mp Ow0KIAl9DQogCWlmIChyZXNwb25zZV9jb3VudCE9MCkNCiAJew0KQEAgLTQ4 MjQsNyArNDgyNiw3IEBADQogCUlOSVRfUkVRVUVTVDsNCiAJcmVxPUNVUlJF TlQ7CQkvKiB0YWtlIG91dCBvdXIgcmVxdWVzdCBzbyBubyBvdGhlciAqLw0K IAlDVVJSRU5UPXJlcS0+bmV4dDsJLyogdGFzayBjYW4gZnVjayBpdCB1cCAg ICAgICAgIEdUTCAgKi8NCi0Jc3RpKCk7DQorCXNwaW5fdW5sb2NrX2lycSgm aW9fcmVxdWVzdF9sb2NrKTsJCS8qIEZJWE1FISEhISAqLw0KIAkNCiAJZG93 bigmaW9jdGxfcmVhZF9zZW0pOw0KIAlpZiAocmVxLT5ycV9zdGF0dXMgPT0g UlFfSU5BQ1RJVkUpDQpAQCAtNDg2OSw2ICs0ODcxLDcgQEANCiAJCQl4bnIs IHJlcSwgcmVxLT5zZWN0b3IsIHJlcS0+bnJfc2VjdG9ycywgamlmZmllcyk7 DQogI2VuZGlmDQogCQlzYnBjZF9lbmRfcmVxdWVzdChyZXEsIDEpOw0KKwkJ c3Bpbl9sb2NrX2lycSgmaW9fcmVxdWVzdF9sb2NrKTsJCS8qIEZJWE1FISEh ISAqLw0KIAkJZ290byByZXF1ZXN0X2xvb3A7DQogCX0NCiANCkBAIC00OTA4 LDYgKzQ5MTEsNyBAQA0KIAkJCQl4bnIsIHJlcSwgcmVxLT5zZWN0b3IsIHJl cS0+bnJfc2VjdG9ycywgamlmZmllcyk7DQogI2VuZGlmDQogCQkJc2JwY2Rf ZW5kX3JlcXVlc3QocmVxLCAxKTsNCisJCQlzcGluX2xvY2tfaXJxKCZpb19y ZXF1ZXN0X2xvY2spOwkvKiBGSVhNRSEhISEgKi8NCiAJCQlnb3RvIHJlcXVl c3RfbG9vcDsNCiAJCX0NCiAJfQ0KQEAgLTQ5MjIsNiArNDkyNiw3IEBADQog I2VuZGlmDQogCXNicGNkX2VuZF9yZXF1ZXN0KHJlcSwgMCk7DQogCXNicF9z bGVlcCgwKTsgICAgLyogd2FpdCBhIGJpdCwgdHJ5IGFnYWluICovDQorCXNw aW5fbG9ja19pcnEoJmlvX3JlcXVlc3RfbG9jayk7CQkvKiBGSVhNRSEhISEg Ki8NCiAJZ290byByZXF1ZXN0X2xvb3A7DQogfQ0KIC8qPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0qLw0KQEAgLTUwOTgsMTMgKzUxMDMsMTEgQEAN CiAJCXsNCiAJCQltc2coREJHX0lORiwic2JwX2RhdGE6IENEaV9zdGF0dXMg dGltZW91dCAodGltZWRfb3V0X2RhdGEpICglMDJYKS5cbiIsIGopOw0KIAkJ CWVycm9yX2ZsYWcrKzsNCi0JCQlicmVhazsNCiAJCX0NCiAJCWlmICh0cnk9 PTApDQogCQl7DQogCQkJbXNnKERCR19JTkYsInNicF9kYXRhOiBDRGlfc3Rh dHVzIHRpbWVvdXQgKHRyeT0wKSAoJTAyWCkuXG4iLCBqKTsNCiAJCQllcnJv cl9mbGFnKys7DQotCQkJYnJlYWs7DQogCQl9DQogCQlpZiAoIShqJnNfbm90 X3Jlc3VsdF9yZWFkeSkpDQogCQl7DQpAQCAtNTExOSwxMCArNTEyMiwxMCBA QA0KIAkJCQltc2coREJHX0lORiwgIkNEIGNvbnRhaW5zIG5vIGRhdGEgdHJh Y2tzLlxuIik7DQogCQkJZWxzZSBtc2coREJHX0lORiwgInNicF9kYXRhOiBE QVRBX1JFQURZIHRpbWVvdXQgKCUwMlgpLlxuIiwgaik7DQogCQkJZXJyb3Jf ZmxhZysrOw0KLQkJCWJyZWFrOw0KIAkJfQ0KIAkJU0JQQ0RfU1RJOw0KLQkJ ZXJyb3JfZmxhZz0wOw0KKwkJaWYgKGVycm9yX2ZsYWcpIGJyZWFrOw0KKw0K IAkJbXNnKERCR18wMDAsICJzYnBfZGF0YTogYmVnaW5uaW5nIHRvIHJlYWQu XG4iKTsNCiAJCXAgPSBEX1NbZF0uc2JwX2J1ZiArIGZyYW1lICogIENEX0ZS QU1FU0laRTsNCiAJCWlmIChzYnByb190eXBlPT0xKSBPVVQoQ0RvX3NlbF9p X2QsMSk7DQo= --279709697-1861676658-905782024=:28287--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/faq.html