]> git.karo-electronics.de Git - karo-tx-linux.git/commit
net/macb: clean up ring buffer logic
authorHavard Skinnemoen <havard@skinnemoen.net>
Wed, 31 Oct 2012 06:04:55 +0000 (06:04 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 1 Nov 2012 15:45:58 +0000 (11:45 -0400)
commit55054a16a5ecf7202e698b07f00ad8e0dadf7d50
treee024a8143ea810b333af3afbcc52f2d2bef93aae
parentcde30a857ca10b8ba55a441193864aa04a4832f7
net/macb: clean up ring buffer logic

Instead of masking head and tail every time we increment them, just let them
wrap through UINT_MAX and mask them when subscripting. Add simple accessor
functions to do the subscripting properly to minimize the chances of messing
this up.

This makes the code slightly smaller, and hopefully faster as well.  Also,
doing the ring buffer management this way will simplify things a lot when
making the ring sizes configurable in the future.

Available number of descriptors in ring buffer function by David Laight.

Signed-off-by: Havard Skinnemoen <havard@skinnemoen.net>
[nicolas.ferre@atmel.com: split patch in topics, adapt to newer kernel]
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Tested-by: Joachim Eastwood <manabian@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cadence/at91_ether.c
drivers/net/ethernet/cadence/macb.c
drivers/net/ethernet/cadence/macb.h