On Tue, 30 Oct 2007, Randy Dunlap wrote:
> drivers/media/video/bt8xx/bttv-cards.c calls ip_compute_csum().
> However, when CONFIG_NET=n, that produces:
>
> ERROR: "ip_compute_csum" [drivers/media/video/bt8xx/bttv.ko] undefined!
>
> Config symbol VIDEO_BT848 can be made to depend on NET, or the
> osprey_eeprom() function can be built depending on some new config
> symbol, or bttv could have its own checksum function...
The real problem here is that ip_compute_csum is part of lib-y, but is also
exported for modules. This problem has come up before, for instance your
patch for csum_partial()
http://lkml.org/lkml/2007/4/3/209
Or the problem with kasprintf and the lg module:
http://lkml.org/lkml/2007/9/24/15
The general lib-y vs EXPORT_SYMBOL problem:
http://lkml.org/lkml/2007/9/25/17
The only reason the net stuff works, is because CONFIG_NET includes igmp.c,
which can't be compiled as a module. That means ip_compute_csum() will get
pulled out of the lib.a file for igmp, and thus be present for the net modules
that use it too. If igmp could be turned off, made a module, or stopped using
ip_compute_csum(), then the users of ip_compute_csum() that do depend on
CONFIG_NET would have the same problem as bttv does.
It seems a shame to create a new ip checksum function in the bttv driver when
a perfectly good one already exists and will already be present in just about
every kernel out there. Honestly, how common is NET=n and VIDEO_BT848=m
outside of randconfig?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]