On 23/03/2015 08:53, Gerd Hoffmann wrote:
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
+ if (cfg & (1 << (bit % 8)))
+ set_bit(bit, bits);
what if not set? does something clear the mask?
kzalloc?
So you are really just reading in array of bytes?
All this set bit trickery is just to convert things from LE?
Trickery? Just checking each bit from virtio config space, then set it
in the input layer bitmap. It's a simple stupid loop.
Surely not the most efficient way, but hey, it's not in the hot path and
I'm sure I'm setting the bits correctly because this uses the standard
linux kernel bitops.
Use __set_bit though, because set_bit is an atomic operation.
Paolo
quoted
quoted
At least, this needs a comment explaining what the function does,
and maybe wrap it in a helper like virtio_input_bitmap_copy or
virtio_bitmap_or.
Can do that, sure.