Re: cdrom: use kmalloced buffers instead of buffers on stack

From: Jeff Garzik
Date: Mon Apr 21 2008 - 22:01:38 EST


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@xxxxxxxxxxxxxxxx>
AuthorDate: Wed Mar 26 12:09:38 2008 +0100
Committer: Jens Axboe <jens.axboe@xxxxxxxxxx>
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@xxxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <jens.axboe@xxxxxxxxxx>
---
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


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