Re: crc32 cleanups

Jeff Garzik
2001-10-12T20:07:23Z

On Fri, 12 Oct 2001, Horst von Brand wrote:
> Matt Domsch <Matt_Domsch@dell.com> said:
> > In trying to get my EFI GUID Partition Table patch included into the stock
> > kernel, Andreas Dilger suggested it was time for some crc32 cleanup, as
> > the GPT patch added yet another copy of the common crc32 function. So,
> > here's my first pass at it. Comments welcome.
>
> [...]
>
> > This patch (appended below), makes include/linux/crc32.h and
> > lib/crc32.c. It generates a table based on the commonly used polynomial
> > at init time provided a driver needs it. It changes ether_crc_le() to use
> > this table. It renames the commonly seen ether_crc() to be
> > ether_crc_be(), and puts it in crc32.h (allowing lots of copies to be
> > deleted).
>
> You could just place the functions (each with its table) into separate .c
> files, and place them in the library. The linker will then include them iff
> they are referenced somewhere. OTOH, they _are_ all over the place right
> now, so they could just be included unconditionally. Thinking of ways to
> set up to have them included in case only modules use them makes me
> shiver...

Then leave that task to others ;-)

We must consider the case where the kernel is built, and then a random
3rd party module comes along that needs crc32 features. An ar library
won't cut it, and neither will [the existing crc32 method of] patching
linux/lib/crc32.c. That leaves (a) unconditionally building it into the
kernel, or (b) Makefile and Config.in rules.

Jeff