[linux-dvb] BUG in changeset 7157?

e9hack e9hack at googlemail.com
Tue Feb 5 23:44:31 CET 2008


Hi,

compiling of the current HG tree fails on linux 2.6.24. I think it is a bug in changeset 7157:

--- a/v4l/compat.h Tue Feb 05 07:37:21 2008 +0000
+++ b/v4l/compat.h Tue Feb 05 11:21:32 2008 -0200
@@ -497,6 +497,10 @@ do { \
#ifndef BIT_MASK
# define BIT_MASK(nr) (1UL << ((nr) % BITS_PER_LONG))
# define BIT_WORD(nr) ((nr) / BITS_PER_LONG)
+
+#define i2c_verify_client(dev) \
+ ((dev->bus == &i2c_bus_type) ? to_i2c_client(dev) : NULL)
+
#endif

The definition of i2c_verify_client() should not be inside #ifndef BIT_MASK / #endif. The 
variable i2c_bus_type is only public on 2.6.23.x (maybe also on earlier versions) but not 
on 2.6.24. The following patch does fix the problem on 2.6.24 for me:

diff -r 012135d734a0 v4l/compat.h
--- a/v4l/compat.h      Tue Feb 05 11:21:32 2008 -0200
+++ b/v4l/compat.h      Tue Feb 05 23:33:35 2008 +0100
@@ -497,12 +497,15 @@ do { 
       \
  #ifndef BIT_MASK
  # define BIT_MASK(nr)            (1UL << ((nr) % BITS_PER_LONG))
  # define BIT_WORD(nr)            ((nr) / BITS_PER_LONG)
-
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
  #define i2c_verify_client(dev) \
         ((dev->bus == &i2c_bus_type) ? to_i2c_client(dev) : NULL)
-
-#endif
-
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+#define i2c_verify_client(dev) \
+       ((dev->bus && 0 == strcmp(dev->bus->name, "i2c")) ? to_i2c_client(dev) : NULL)
+#endif

  #ifndef USB_DEVICE_AND_INTERFACE_INFO
  # define USB_DEVICE_AND_INTERFACE_INFO(vend,prod,cl,sc,pr) \

-Hartmut



More information about the linux-dvb mailing list