Re: [PATCH 1/6] firewire: handling of cards, buses, nodes

Kristian Høgsberg
2007-05-07T22:05:12Z

Pekka Enberg wrote:
> On 5/2/07, Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:
>> I looked around a bit with grep -R and a few search terms but didn't
>> find something definite. Is there any other user of a crc16_itu_t or
>> crc_ccitt or whatever which operates on a (CPU byte ordered) u32[]
>> instead of on a (network byte ordered) u8[]?
>
> I was referring to this: http://lkml.org/lkml/2006/6/12/137

That works. If you look closely, you can see that the ITU-T table is just

crc_itu_t_table[i] = bitrev16(crc_ccitt_table[bitrev8(i)])

but that's a expensive enough operation that I think it deserves its own
table. Especially if there's another driver out there that needs this.

> On 5/2/07, Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:
>> The only value in having a shared implementation would be a potentially
>> smaller kernel. Sharing it to ensure correctness is not an issue;
>> fw-topology.c::crc16_itu_t is simply the one in IEEE 1212 table 5.
>> Performance is also not an issue (if better algorithms exist) because
>> the FireWire stack uses it only infrequently on a moderate amount of
>> data.
>
> Yeah, it's not a biggie, but we do have a tradition of putting
> generally useful things into lib/ so that everyone doesn't invent
> their own.

I'll pull in Ivo's patch and add it to the firewire branch.

thanks,
Kristian