Ang Way Chuang wrote: > My name is Way Chuang :) I adopt chinese way of displaying name. Surname > first. Sorry about that, Way Chuang. I also apologize in advance, because I will probably forget and make the same mistake again in the future. :-P I'll try to remember. > CRC-32 checking during ULE decapsulation always failed on x86_64 system due to the > size of a variable used to store CRC? Discovered this bug on Fedora Core 6 with > kernel-2.6.18-1.2849. The i686 counterpart has no such problem. Attached is > the output of dmesg showing the problem. Look for the last few lines for indication. > This patch has been tested on 64-bit system as well as 32-bit system. Your patch produces the following: CC [M] /home/mk/v4l-dvb/v4l/dvb_net.o /home/mk/v4l-dvb/v4l/dvb_net.c: In function 'dvb_net_ule': /home/mk/v4l-dvb/v4l/dvb_net.c:628: warning: format '%#lx' expects type 'long unsigned int', but argument 3 has type 'u32' /home/mk/v4l-dvb/v4l/dvb_net.c:628: warning: format '%#lx' expects type 'long unsigned int', but argument 4 has type 'u32' I fixed that problem with the following patch... (please see attached) Regards, Michael Krufky
fix warning: dvb_net.c: In function 'dvb_net_ule': dvb_net.c:628: warning: format '%#lx' expects type 'long unsigned int', but argument 3 has type 'u32' dvb_net.c:628: warning: format '%#lx' expects type 'long unsigned int', but argument 4 has type 'u32' Signed-off-by: Michael Krufky <mkrufky@xxxxxxxxxxx> --- v4l-dvb.orig/linux/drivers/media/dvb/dvb-core/dvb_net.c +++ v4l-dvb/linux/drivers/media/dvb/dvb-core/dvb_net.c @@ -624,7 +624,7 @@ static void dvb_net_ule( struct net_devi *((u8 *)priv->ule_skb->tail - 2) << 8 | *((u8 *)priv->ule_skb->tail - 1); if (ule_crc != expected_crc) { - printk(KERN_WARNING "%lu: CRC32 check FAILED: %#lx / %#lx, SNDU len %d type %#x, ts_remain %d, next 2: %x.\n", + printk(KERN_WARNING "%lu: CRC32 check FAILED: %08x / %08x, SNDU len %d type %#x, ts_remain %d, next 2: %x.\n", priv->ts_count, ule_crc, expected_crc, priv->ule_sndu_len, priv->ule_sndu_type, ts_remain, ts_remain > 2 ? *(unsigned short *)from_where : 0); #ifdef ULE_DEBUG
_______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb