aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2008-06-22 13:20:49 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-20 06:13:08 -0400
commitf51b10ef6520f2bd725dc333e771eabd55d6c04f (patch)
tree2334e29554e17384ccc6270f4baaaa69a24e2579
parent38f993ad8b1fe4caf9e989caf6e2a25aff3bbaf7 (diff)
V4L/DVB (8126): net endianness fix
According to RFC 4326 (4.1) D-bit is MSB in net-endian 16bit. dvb_net.c did /* Set D-bit for CRC32 verification, * if it was set originally. */ ulen |= 0x0080; which works of little-endian (htons(1<<15) is 0x0080 there), but breaks on big-endian. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/dvb/dvb-core/dvb_net.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c b/drivers/media/dvb/dvb-core/dvb_net.c
index c2334aef4143..ff7161094023 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -606,7 +606,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len )
606 if (priv->ule_dbit) { 606 if (priv->ule_dbit) {
607 /* Set D-bit for CRC32 verification, 607 /* Set D-bit for CRC32 verification,
608 * if it was set originally. */ 608 * if it was set originally. */
609 ulen |= 0x0080; 609 ulen |= htons(0x8000);
610 } 610 }
611 611
612 ule_crc = iov_crc32(ule_crc, iov, 3); 612 ule_crc = iov_crc32(ule_crc, iov, 3);