Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: AMD64 and DVB



	To my knowledge all severe casts from (*) to int are remove. Indeed some remain but are benign (mostly address struct offsets for pointer arithmetics).

	The severe ones (all used to be in av7110 module, inside the debi functions) were corrected some months ago (by me).

	There could, however (and that's me just speculating) remaining problems in _inperpreting_ weather the system is, indeed, 64bits. You see, AMD64 is actually a 64bit refresh of the X86 arch. No_so_good code could be assuming that if the X86 #def is on, then the types are for 32bit... My system is an Alpha EV56 (64 bits - little endian, just like AMD64) and I can assure you that the driver code (for highend boards) is 64bit compliant on this system. If I could give any advice, it would be to check witch pats of the code take dramatically different paths if the system is Alpha or AMD64...

	Make sure the problems you are experiencing on crc32 functions are not in VDR instead of the drivers. VDR used to have big issues on pointer size assumptions and memory alignment. These were too solved after 1.3.x

Best regs,
PJ



-----Original Message-----
From: linux-dvb-bounce@linuxtv.org [mailto:linux-dvb-bounce@linuxtv.org] On Behalf Of Max Nickel
Sent: sábado, 7 de Fevereiro de 2004 15:55
To: Johannes Stezenbach
Cc: linux-dvb@linuxtv.org
Subject: [linux-dvb] Re: AMD64 and DVB

Am Sa, den 07.02.2004 schrieb Johannes Stezenbach um 16:06:
> Max Nickel wrote:
> > Hi,
> > i bought a brand new Athlon64 yesterday. So far everything is running
> > fine, except the DVB drivers.
> 
> Which driver? From 2.6.x kernel, CVS or release 1.1.0?
> 

I tested it with the drivers of 2.6.1 and 2.6.2 kernel release.

> > The problem is, that the av7110 driver makes excessive use of crc32 when
> > it tries to load the firmware, which causes problems on a 64Bit System
> > :)
> 
> Hm, I wonder what your definition of "excessive" is...
> What exactly is the problem?
> 
> > Is there any way to fix this, or some smart workaround ?
> 
> The firmware crc checks are just for fun ;-), you can
> comment them out if you want. But maybe the checks fail
> because something else corrupts the firmware? Some
> alignment issue?
> 

well it fails on multiple occasions. First it fails on the crc32 checks
when it wants to load the firmware. When i comment it out, it fails
cause it thinks the firmware has the wrong size. If i also comment this
check, i get this error:

Unable to handle kernel paging request at ffffff00014ca000 RIP:
<ffffffff802ab88b>{memcpy+11}PML4 64a063 PGD 37ee3067 PMD 3fc61067 PTE 0
Oops: 0000 [1]
CPU 0
Pid: 6637, comm: modprobe Not tainted
RIP: 0010:[<ffffffff802ab88b>] <ffffffff802ab88b>{memcpy+11}
RSP: 0018:000001003a8d9d20  EFLAGS: 00010246
RAX: 000001000064e000 RBX: 0000000000000047 RCX: 00000000000000a7
RDX: 0000000000000000 RSI: ffffff00014c9ffc RDI: 000001000064e6c8
RBP: 0000010036ef8000 R08: 0000000000000002 R09: ffffff0000278a32
R10: 0000000000000000 R11: 000000000000ad55 R12: 000000002e034c04
R13: 0000000000000049 R14: 0000000000035400 R15: ffffff0001495134
FS:  0000002a98460060(0000) GS:ffffffff8063ee80(0000)
knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffffff00014ca000 CR3: 0000000000101000 CR4: 00000000000006a0
Process modprobe (pid: 6637, stackpage=1003f9f2260)
Stack: ffffffffa005a4c4 0000076800004400 0000000000002000
0000010036ef8000
       000001003e7697c0 00000000cfffee00 000001003e7697fc
ffffffffa006a900
       ffffffffa005a95d ffffffffa006a900
Call Trace:<ffffffffa005a4c4>{:dvb_ttpci:load_dram+260}
<ffffffffa005a95d>{:dvb_ttpci:av7110_bootarm+685}
       <ffffffffa00636c1>{:dvb_ttpci:av7110_attach+753}
<ffffffffa0049813>{:saa7146:saa7146_init_one+1155}
       <ffffffff801a4a71>{sysfs_create+113}
<ffffffff802b016d>{pci_device_probe_static+61}
       <ffffffff802b01c9>{__pci_device_probe+41}
<ffffffff802b0223>{pci_device_probe+51}
       <ffffffff802fc397>{bus_match+71}
<ffffffff802fc4b6>{driver_attach+70}
       <ffffffff802fc75e>{bus_add_driver+126}
<ffffffff802fcad2>{driver_register+50}
       <ffffffff802b047b>{pci_register_driver+107}
<ffffffffa0049b4f>{:saa7146:saa7146_register_extension+207}
       <ffffffffa006d00d>{:dvb_ttpci:av7110_init+13}
<ffffffff8014d851>{sys_init_module+321}
       <ffffffff80111894>{system_call+124}
 
Code: f3 48 a5 89 d1 f3 a4 c3 66 66 66 90 66 66 66 90 66 66 66 90
RIP <ffffffff802ab88b>{memcpy+11} RSP <000001003a8d9d20>
CR2: ffffff00014ca000


> > P.S. During compiling i noticed some warnings about casts from Ints to
> > Pointers that have a different size. If you are interested i can send
> > you the list of files where it occured
> 
> Sure. We don't have 64bit machines, so we can only fix if we
> get detailed info.
> 

i gather the information for you later this evening.

> 
> Thanks,
> Johannes
> 

thanks
Max



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index