Messages in this thread | | | Date | Mon, 21 Apr 2008 22:01:26 -0400 | From | Jeff Garzik <> | Subject | Re: cdrom: use kmalloced buffers instead of buffers on stack |
| |
Linux Kernel Mailing List wrote: > Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=22a9189fd073db3d03a4cf8b8c098aa207602de1 > Commit: 22a9189fd073db3d03a4cf8b8c098aa207602de1 > Parent: 0a0c4114df4a6903bccb65b06cabb6ddc968f877 > Author: Thomas Bogendoerfer <tsbogend@alpha.franken.de> > AuthorDate: Wed Mar 26 12:09:38 2008 +0100 > Committer: Jens Axboe <jens.axboe@oracle.com> > CommitDate: Mon Apr 21 09:50:08 2008 +0200 > > cdrom: use kmalloced buffers instead of buffers on stack > > If cdrom commands are issued to a scsi drive in most cases the buffer will be > filled via dma. This leads to bad stack corruption on non coherent platforms, > because the buffers are neither cache line aligned nor is the size a multiple > of the cache line size. Using kmalloced buffers avoids this. > > Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> > Signed-off-by: Jens Axboe <jens.axboe@oracle.com> > --- > drivers/cdrom/cdrom.c | 274 ++++++++++++++++++++++++++++++++----------------- > 1 files changed, 181 insertions(+), 93 deletions(-)
Eh... AFAICS this is only really useful in two of the cases converted.
For all the other cases (<= 32 bytes), it is _far_ less complex, far less code to simply communicate the additional alignment requirements to the compiler.
What about __attribute__ __aligned__? Was that tried?
Jeff
| |