Re: [PATCH] firewire: octlet AT payloads can be stack-allocated

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Stefan Richter wrote:
> ...provided that the allocation persists until the packet was sent out
> to the bus.  But 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.
> The lifetime requirement of these allocations is fulfilled because the
> call sites use the blocking fw_run_transaction API.
> 
> 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.
> 
> firewire-sbp2's struct sbp2_orb.pointer buffer for 8-byte block write
> requests on the other hand needs to remain slab-allocated in order to
> keep the allocation around until end of AT DMA.
> 
> Signed-off-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>

Acked-by: Clemens Ladisch <clemens@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux