]> git.baikalelectronics.ru Git - kernel.git/commit
V4L/DVB: dvb: l64781.ko broken with gcc 4.5
authorRichard Guenther <rguenther@suse.de>
Tue, 9 Feb 2010 23:16:03 +0000 (20:16 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 19 Feb 2010 05:19:01 +0000 (03:19 -0200)
commita1934c1ba278f9bc476f6f769dd488aa3d5d38d8
tree3d5093b721c933fcfe90b7b896ae12551f93c8b1
parent9c3a4b0c8c5d3b67bda5e63c451d8e8823fb0eb7
V4L/DVB: dvb: l64781.ko broken with gcc 4.5

I'm trying to fix it on the GCC side (PR43007), but the module is
quite stupid in using ULL constants to operate on u32 values:

static int apply_frontend_param (struct dvb_frontend* fe, struct
dvb_frontend_parameters *param)
{
...
 static const u32 ppm = 8000;
 u32 spi_bias;
...

 spi_bias *= 1000ULL;
 spi_bias /= 1000ULL + ppm/1000;

which causes current GCC 4.5 to emit calls to __udivdi3 for i?86 again.

This patch fixes this issue.

Signed-off-by: Richard Guenther <rguenther@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
CC: stable@kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/l64781.c