firewire: octlet AT payloads can be stack-allocated
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Fri, 22 Apr 2011 13:13:54 +0000 (15:13 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Tue, 10 May 2011 20:53:44 +0000 (22:53 +0200)
commitf30e6d3e419bfb5540fa82ba7eca01d578556e6b
treee4d6e7bad161a76b09557bf7513358ae1ce8f7fb
parent020abf03cd659388f94cb328e1e1df0656e0d7ff
firewire: octlet AT payloads can be stack-allocated

We do not need slab allocations anymore in order to satisfy
streaming DMA mapping constraints, thanks to commit da28947e7e36
"firewire: ohci: avoid separate DMA mapping for small AT payloads".

(Besides, the slab-allocated buffers that firewire-core, firewire-sbp2,
and firedtv used to provide for 8-byte write and lock requests were
still not fully portable since they crossed cacheline boundaries or
shared a cacheline with unrelated CPU-accessed data.  snd-firewire-lib
got this aspect right by using an extra kmalloc/ kfree just for the
8-byte transaction buffer.)

This change replaces kmalloc'ed lock transaction scratch buffers in
firewire-core, firedtv, and snd-firewire-lib by local stack allocations.
Perhaps the most notable result of the change is simpler locking because
there is no need to serialize usages of preallocated per-device buffers
anymore.  Also, allocations and deallocations are simpler.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Acked-by: Clemens Ladisch <clemens@ladisch.de>
drivers/firewire/core-card.c
drivers/firewire/core-cdev.c
drivers/firewire/core-iso.c
drivers/firewire/core-transaction.c
drivers/media/dvb/firewire/firedtv-avc.c
include/linux/firewire.h
sound/firewire/cmp.c
sound/firewire/iso-resources.c
sound/firewire/iso-resources.h