drivers/char/agp/agpgart_be.c defines several agp_generic_*
functions for chipsets which do not need a specific one.
Unfortunately, a lot of chipsets don't use them all, so in
most cases, some of them are defined but not used. This makes
gcc print warnings and adds useless code. This afternoon, I
felt brave and added all the #ifdef needed depending on what
the chipsets use. I did it carefully, so I think I did not
miss any, but a second check might be useful. An interesting
side effect is that it reduced the driver by about 2 kB for a
VIA chipset.

Here is the patch against 2.4.26-rc1. I don't know if it's
too late for 2.4.26, but at least it could be reviewed.