cdrom changer support for scsi [patch]

Richard Sharman (rsharman@pobox.com)
Mon, 23 Aug 1999 22:51:53 -0400 (EDT)


--ZGwJZf8F5C
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit

Having recently bought a CD writer I started using the scsi-emulation
driver, but then lost support for my CD-changer since the scsi driver
doesn't have changer support.

So, I decided to implement it based on the ide code.

The patch is against 2.3.13, and has been tested both as modules
(sg.o sr_mod.o cdrom.o ide-scsi.o) and built-in to the kernel.

It seems to work fine when used through scsi-emulation on my IDE
cdroms, but I have no SCSI equipment to test it on.

If anyone could test this patch with a SCSI changer that would be great.
If anyone could test it with any SCSI cdrom (to make sure it hasn't
broken anything!) I would appreciate it. If anyone is willing to test
it and wants say a 2.2 version please let me know.

A small readme and any newer version will appear in
http://www.pobox.com/~rsharman/linux/

(What do I do next after any feedback is incorporated? Mail it to the
SCSI maintainer?)

Finally (sorry for the long post!), I have a related question.
Is there a problem with having large local variables in a kernel
function? In a few places I have a local (stack based) buffer of 248
bytes. I see in some places in sr.c `scsi_malloc' is used even
though the buffer is freed in the same routine. I would have thought
this adds unnecessary overhead, but am wondering if there is some
limit to the stack usage in the kernel.

Here is the gzipped patch mime encoded as requested on the faq.
Richard

--ZGwJZf8F5C
Content-Type: application/octet-stream
Content-Description: scsi changer patch, against 2.3.13
Content-Disposition: attachment;
filename="scsi-changer-patch.gz"
Content-Transfer-Encoding: base64

H4sICOcCwjcAA3Njc2ktY2hhbmdlci1wYXRjaADNW21z2kgS/ox/xay3NgcxEIQBY4i9IUAS
bjHkDM5WLpdSydJgdMESJ4nYbOL77dfdMyONBPglux+ObBmh6ZeZnu6ne1raUqnEFq63un3h
evZi5fAX4pftBP51eV72A/cqN52vWGd1xYwqqx62qo1W9ZgZx8fHewcHB/dx5yZWRIxVAxlr
x61qXTC+esVKx7Wi0WAH4uvVqz32s8NnrsdZt3c+Pns/7Hx8Pfwtl6vc1g+No9yL5ywfRsHK
jhhJNy8XXwrs+Ys9tsdgbK/EnrPpnIecub4dLUJmBZytQu4w31usxZXrMX8Z2U7Z3jsgcjcU
1AwudtMyUpOa3Xm/0+sMh3J2TZxdwC2HWYsFqzZqDXa5jniIfKUUX3c4nvSn552PkvMYOZfc
cywvYv5MEPX/3u9OtaWxbUtzr5cLfs29COYazQN/dTWHb1iy58784BoklUAUcwL3Kw+UiDUz
b9zFwmSXnFkOrA+YL9c06xR9WGQ3c+7RAAoVgyRFEtAc+FfQvwKiNVv6Ac3E3z0JMGnEg5ll
87Iw6cGfMU2K1wROc/x+OhiPJsRdrTA03YRHsNS59dX1A9xO1/fCLdzdYb9znuY3iL+74Fbw
GAmT/hAmZk7e9/s9IaAaTyAxIAuXHIyEXrERdqEduvRHBd2Z71HssGNWqbRqzZbR3BV0Gq8e
csZRq37cqh0lIXdUL0LEwd+jVMCdjXt9tQQDLCc+sIz6Bs1o0tdIkMbSaT70zbN+b3BxxphG
Y9WTvR6OOz3zYoRfaZpGIgejywSwSX+AppnQ/H4+mPY3iIDGytJ86J8P3nxMSIGGkzWah2iN
Zi1jjQk4Q/edORz/rouv3F5WMzMEg531R7Dr0870YiJomrqcUc/8MB5enPXNaedtIqeRWOOs
333XGQ0mZ4kQQeNkVzEcj96aVX2l3BIAoTmTDE7pEIFyJeUTRo0ZDcTvWj3rShucsf9VD8GX
WvVaq9JIHOnwCE2Hf5tku9zKC90rD5w7hzhoO6btOFbLaOcUNLreFbNWjuszx4oswFi8QWbs
9iigcil0d/hX1+am6818uOO2YfyOTWByQN7eO8B/0XrJwUQsVm3PrSCHwAsELwjv2KQ7GWDU
2Sy01iGGIsCW7a8WDkJgtd5g4cKPAO5YKJDr2rplofsHR8SB35Qnrrk9v1zN4IZ1ueDsRrE3
D5q3IKJMRO/8G4DDoMgA+Fhn2nk/IDkhOz0hPW7ErsDEIRsMh/23nSGs/R8X/cm0zIi9Wmsi
2vo3ITusiEmR3BdpX3l98eaNORn8s48MaARpNNw2E+cZRlZkzsHegLffgNedMcHu5E3z9eCt
CU456Izgcvpm0B/2CnsHOdNcNdnMWi2i2LtazGirETCrd8UDE0VzGKkmI6sAZxrz1GHkZ75I
6RwOptNhf6fabSIeUrttqqA25PgVBGD//fcA3JAvZ+4te2mF1y/QK/wAjFKen+4jmee4M7Tf
4w2E1pWTIa2H8Xwc3w9MH1LVhukCSNrBV+4YcqT2dANtE/GQ2m1T/VEDUUCRBtiqxaX16fBz
W7/rka/GqsM5FALkvyZFy4J7MHYnQ1b3Vtr2J7mo44a2uUSDQEWw08wt1sj4UNZRnuSfmxIe
0Lllln/O9kpTVZhe2FK3pIoUAkuwaO4+UJg7QTtDQjtB2/ipEmtguT3Gb6Fg8xTsAkqF4gq2
m1EaqFM9YRhHRagJMA/sYZHHwsBEyDdDbkd+kMdb167nAzjiJTiRuIAKHiGymEZw9tzhYVRo
x6Lc0Ly1EiEFWr+uJnb3VciILrKCKx4VpTiAbqlvNQN3LDBdQAgeakcmblrmfKFnoOeQgoQM
NBNKEKU5CIAS2PGDsk057KvvOslN4HWj1MR3Z2p7x0kLU/b9mdpOZWqoFKHq0zL18WHROIRT
FnzVaIvUB6YZBdbavPa/whZkP7A4HGU4SkvT2Ba+/cVE9NnKhqOETVk2aWqqgYsbbGJUq5DV
2OhiONxUtMlJW4j5clMlDmVFbDLqcwX3MRdWCLPlYQg1fzHFCKMMR5kc3cZ9bXvbZi254YCE
m2gt2DLwHXI639kwNEZ+tH3tIAec2yFwiLJ8VGeZdFjcsmxRhYlzb4YRfH47GzGKiChhOeXO
XHuLiG6va9I5zsSDHPtON8bv+yP6LX4Ox93f5Ih+amLfk53TxnqDSReGUhrOLobTARBMJnBe
k6LOuvEVnD86JpbVb1Eq3cNmgtm56A3GWVnnfTg6SqrBuDsdTuSP3vkADjOyKhe3uj3zXLv8
HWXliPaDUgRXMQ1dd87kr7f9EZxDYCqd7m/9aZFi06hQGW1UmsWqCM4cbMLSsr/waI/dIcog
TgHa/xjS7R18E0ZdmUSAW2xfO5+M6mfCQBwCcijZQ6yo4nvX/Bq8Ki+oi5WiUUXQlT6CAiqf
2cnG2SVNYiBJXiWMT2Kin8vSh04XK4+9fMnqhMYa2xGxifmz01PWLLBnz+CwA9V3G48S1+Fl
HOSSpYkskiNFu5C0glou8oT8XEZHXtlPLpWRBYWsIquoVdMRhrjdkFUY1A/+F4gQzOp4p9S/
vb2NZxXwaAVJM7HpncwUGztIc8MDHFPNqNnKs7HFAPvJ7S8htlNCzlEhnU2441oQ9iEcPrgn
SxPqVOFJBYVQM0K0W8qMDWi+Sx8wCs8t0RyOgTccBACkWwuczhrEe9jtsqQ06ZfGMSUN4xAc
8zid2GkSsuR4dML8Bp6NP8A2X61FO4n0dOaXB61PqZPOZ6bR7yx7ntNfjJg4cYDV8t3eZGh2
L87P4ZzOfjqR6ftbQqTBm+erMwcLV0tsaKXykPrI/S31B6MPnWE7IbhLpomqqaoClfoUClSe
SSlgCeGNm6F9NhiNz/Ngw9IpWLVQBCb85NFKzwvPpJ2KdMKEg2pe3ihQNOXUDJSOE/BkUpwj
I53Ehc4WMxbUJpCkXDxNHC2diiKRrMg+l2Vt3KYaHk/ivf7ri7eJFdRnGcDef8nvZ7ynpYrr
S5cc9RfnX95+UVqGVqIqYV3YnQi7b09Qw0TdrboQuEAmLA0KC7p7ad4gt/kGggbP9VLGDZbj
Nof4ctivv/6aqjekD+y2xe4JCmU4uccZIcYYEU7g9MlO0aYKdIvRN+NPCoaLiVTNeX9MUtaE
qQ+2YUR6Naf9ydS8GA2mJjZ/PgqUZYgPM+mwBVG3NqBibULhegwYVI0rV5rILOAcc8QM+y11
yk6wACbOmLIKxxrMtpbWpbtwI5eHlC5dRCL8pHEHs0gDUuKWoedCjRxDGdou2EU43JbiPCrP
wkVyLulVjwQ4sTZgg7JK6F34loPknzC7fUvMu29bjrPe1wy+j4V66sbSX5ZWy9St1A8Z8nCv
tOXeQXLPCqLAdSBEk9EdIvfF9V07MY8scapHxSOscRqNYrUR7yPik9zCT97B4WeGidsoCLAS
JJjCbcv7GyStwI1ED13mQNEvVD7pAhQ5bvnaCr+w7ydxfZZsTUpXQ+hqKl3xcmN1/N94LMDQ
vldHXNcqBMnqOT2tk5Ia+/49pcbD8/YqgCx86a+giFsvOasX2bV1Zf2BnT5p7TAFL9sk1wWu
Y1Ef5y6xBnvhA0qiZ5TL5fSx6D6zxbV7Kuda0a5EBUn+cUlJCaPMSAJVVmLaRwQQKFOBUv+c
hWcFol25XCyHfnFkx5SwUwjZwPXsuhEcbDdagzapVmPYnmWU7j7lgihYI2JDjUaP/h5IK/eZ
XT/rtDcwOZnLve64RcjdIzBzZ0tCIP+PNyYUf6Y9Ua+34CJuTxjNo6KB+ADftUwPiQRKV3t0
qbmnV3dPLQFVdfwXlYJPqW4frGzj05qeZVbwrVroCYkI2Y1iuIJBF/EwMleeG1E0r7OlZqGQ
XqZcIhiRPMsc/6aBHak92SxxNb0aP8IKgSZWlk+YT1wwb04kB//t0CC3IaesuxvDNovt7D5n
P4+HvE24e3INHmOiKMHnTlBO8ConF7G9QE+1opFauYouTHOfdOma0+pVPRShXlWAW6SnAgGK
pwK+yJiiEYWs3DzG4tpIqlPuq5W4OekWcuDefRcN9SzBaEw0cR9DQ05JJQNDeQd+IQyWEsxx
wy+PghwCmsxDy8i3waIoFK7MeZsQrtqkJvlhpVk8Pk51YGmxWjMi64hxV0K0QCtYKxfShXaC
QGN8RCp/VrDrgEYASBvM2GQ4nr6sYJsdi0pqJahdw60oMzbGB6M3bsiLmNUwpRElMoriQVoH
75pCzOOb5XEXiiBxeycqJ1pOTPWccLEqqMStQkEvSbQ2lPZCQRsxHF8lyPaBk4bUgycZVjpl
i5VXEN0pCjHBX0P+KjuQsHdKAa2NUxsKh2L30zboqdusNvDPPKVIun9b01C1AuZrU9rDh97x
Q3Go2GsHzaTJ9mBeSqcdLQtlQj6Tn1ahDpKM7EH1zLONckYAp4IjWjhzfB7KQlokaGEjrMgw
hlkex+KquKBKslwcMaLB2+2MQMnYnL4bTBJc+D9JGj/FSWM7fCmDPimhJGC8I6eopT86rSDD
kzILMmjJRfPup+eWh/OKeMRciVu5PR+dBNxjjt+ytxrw/6ygEuFCOWrUYdL3uNxgPCOuQnC9
ZeBfLgC0lAAdUZMercBK7sTc+cs1Ew9Q6PBAldNoPOqDivSrZOj4hXLMhy+zqJI04OjwIZPp
Tryqh3OgLI1zt2ybhyF3Ev6Jj8WttbjB12BwTkV6ew9n70KcLJfcgvPmyvM4clrBOmZ9sVnv
SVsX5OP7HTVDalsz9oVNxmnKJrS0XbpgUE9a411UQZCGk7t0h+y+snS3hAyv6trSxjx7Ju++
ZBU4yDOF/vKYmRIcnwS2CH4g75ROxaaZAMTgRqfM2GJehSW7rAxnf4Q9B99lciEoUiJP4rjJ
INPTprZ1T0owv8nHnQY90Qz6A16DBYksXvQwU5geTyZToVA6LBkySz+4SPU85YQZeqaoqFVp
x/A4MWjqmNBHbruzJb5roRJvZ5jZ0mLDe/YNmDIGeOoilajNlKMr2pJ95D5rX4pIID71FhBt
S3/NJ/3SrGo1UCkg3zbf1aio7HzXMcWdeVe9ftQyDK1NUT00qI0pvvUqXjdh3gquNpEHQCM1
QFFQwJ53LkYkB7Ns4hHCl4AJ2zQ5OhZhA7uAYgB7aGNVAwtO7ImgHXWNTiAhij1W+Z182ceo
NmrCBvAdv++Ts/FdJpG63vanoPh95/VgOJh+bNEBKQfCoCLId3s4HXoGUGT7+N56IBLgJiPG
dRsXpc8v7uWvaTn4fgo+MRUkMlsTCTb75dub8sXzlujl5pKnOlmJCcFjhSqZ2wVCDfvfpKCN
rcjkW6kzH9/0xOXHD3zx/0RI3ugH6y+iOb3TD/Nfsxm/Ea9tyI1owlkSN+LYwOe09OLAo+ys
v9RAVmbKu37Kby4h+xoEHj51RxqNJx+Fc5EE+S59Z5TP1O8yR+Zk/QVnER973wEVX6kyXRpV
gxOaVaoRSM6ZDjCaw91fEZKlTEhuahZhsdEKJFVJiGYitKBH4GOWtOWZZEZDFgQye7M9yHct
h/zzf3BosLoLNAAA

--ZGwJZf8F5C--

-
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/