Re: [Itifg-tech] itifg-8.4.0-0 released
Brought to you by:
mastein1
|
From: Fabien S. <fsp...@ir...> - 2008-03-04 11:09:16
|
Matthias,
-------------------------------------------------------------------------
Here is the output of /var/log/messages
-------------------------------------------------------------------------
Mar 4 11:51:46 genesis kernel: itifg8[IX]: Debug output enabled
Mar 4 11:51:46 genesis kernel: itifg8[IX]: Debug level is 127 (0x7f)
Mar 4 11:51:46 genesis kernel: itifg8[IX]: Configure physical device 0
Mar 4 11:51:46 genesis kernel: itifg8[I0]: IC-PCI found
Mar 4 11:51:46 genesis kernel: ACPI: PCI Interrupt 0000:02:01.0[A] ->
GSI 22 (level, low) -> IRQ 22
Mar 4 11:51:46 genesis kernel: itifg8[NX]: iti_intr: invalid board pointer.
Mar 4 11:51:46 genesis kernel: itifg8[NX]: (0xd2775000)
Mar 4 11:51:46 genesis kernel: itifg8[I0]: Serial number is 33171 (rev. B6)
Mar 4 11:51:46 genesis kernel: itifg8[I0]: AM-STD/COMP Acquisition
Module found.
Mar 4 11:51:46 genesis kernel: itifg8[IX]: 1 physical device(s) found
Mar 4 11:51:46 genesis kernel: itifg8[IX]: Version 8.4.0-0 (build#9)
Mar 4 11:51:46 genesis kernel: itifg8[IX]: Mar 4 2008 (Linux
2.6.23.15-137.fabien.fc8).
Mar 4 11:55:52 genesis kernel: BUG: unable to handle kernel NULL
pointer dereference at virtual address 00000010
Mar 4 11:55:52 genesis kernel: printing eip: e0ec2d8d *pde = 11fdc067
*pte = 00000000
Mar 4 11:55:52 genesis kernel: Oops: 0002 [#1] SMP
Mar 4 11:55:52 genesis kernel: Modules linked in: itifg8(U)
nvidia(P)(U) nfs lockd nfs_acl sunrpc rfcomm l2cap bluetooth autofs4
ipv6 dm_multipath dm_mod snd_intel8x0 snd_ac97_codec ac97_bus
snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device
snd_pcm_oss snd_mixer_oss snd_pcm snd_timer firewire_ohci snd
firewire_core e1000 button soundcore iTCO_wdt crc_itu_t parport_pc
iTCO_vendor_support parport i2c_i801 serio_raw snd_page_alloc i2c_core
joydev dcdbas floppy sr_mod sg cdrom ata_piix ata_generic libata sd_mod
scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd
Mar 4 11:55:52 genesis kernel: CPU: 0
Mar 4 11:55:52 genesis kernel: EIP: 0060:[<e0ec2d8d>] Tainted: P
VLI
Mar 4 11:55:52 genesis kernel: EFLAGS: 00010246
(2.6.23.15-137.fabien.fc8 #1)
Mar 4 11:55:52 genesis kernel: EIP is at icp_src_init+0xfd/0x1c0 [itifg8]
Mar 4 11:55:52 genesis kernel: eax: 00000000 ebx: 00000000 ecx:
00000010 edx: 00000010
Mar 4 11:55:52 genesis kernel: esi: 00000000 edi: d27750dc ebp:
dfe25314 esp: d5d2ef0c
Mar 4 11:55:52 genesis kernel: ds: 007b es: 007b fs: 00d8 gs: 0033
ss: 0068
Mar 4 11:55:52 genesis kernel: Process test_itifg (pid: 11449,
ti=d5d2e000 task=c6b38610 task.ti=d5d2e000)
Mar 4 11:55:52 genesis kernel: Stack: 01557000 00000001 e0ec2c90
dfe25314 dfe25338 dfe25300 e0ebdada 00000000
Mar 4 11:55:52 genesis kernel: 00000001 e0ebea2e 0001b000
00000400 00010078 0001c000 00010400 00200000
Mar 4 11:55:52 genesis kernel: 00000000 00000000 d2775000
00001402 e0ebad9f 00001402 0001c000 00000002
Mar 4 11:55:52 genesis kernel: Call Trace:
Mar 4 11:55:52 genesis kernel: [<e0ec2c90>] icp_src_init+0x0/0x1c0
[itifg8]
Mar 4 11:55:52 genesis kernel: [<e0ebdada>] acq_lseek+0x42a/0x620 [itifg8]
Mar 4 11:55:52 genesis kernel: [<e0ebea2e>] dma_lseek+0x8e/0x2f0 [itifg8]
Mar 4 11:55:52 genesis kernel: [<e0ebad9f>] iti_lseek+0x14f/0x230 [itifg8]
Mar 4 11:55:52 genesis kernel: [<e0ee3180>] iti_os_llseek+0x0/0x20
[itifg8]
Mar 4 11:55:52 genesis kernel: [<e0ee3198>] iti_os_llseek+0x18/0x20
[itifg8]
Mar 4 11:55:52 genesis kernel: [<c0480cd6>] vfs_llseek+0x35/0x39
Mar 4 11:55:52 genesis kernel: [<c0481d2d>] sys_lseek+0x3c/0x66
Mar 4 11:55:52 genesis kernel: [<c040518a>] syscall_call+0x7/0xb
Mar 4 11:55:52 genesis kernel: =======================
Mar 4 11:55:52 genesis kernel: Code: 80 7c 24 03 00 74 5f 46 3b 74 24
04 74 58 8b 17 8d 1c b5 00 00 00 00 89 d9 8b 42 2c 8b 52 30 01 c1 89 f0
0f af 45 20 03 44 24 1c <89> 04 1a 89 01 80 7d 00 00 74 b9 8b 45 18 85
c0 75 b2 ba 01 00
Mar 4 11:55:52 genesis kernel: EIP: [<e0ec2d8d>]
icp_src_init+0xfd/0x1c0 [itifg8] SS:ESP 0068:d5d2ef0c
-------------------------------------------------------------------------
Here is the output of dmesg
-------------------------------------------------------------------------
itifg8[D0]: > iti_intr: 0x20400 time: 496796us
itifg8[D0]: -> acq_intr: 0x0
itifg8[D0]: opmode: IDLE
itifg8[D0]: -> dma_intr
itifg8[D0]: opmode: IDLE
itifg8[D0]: iti_intr: not all irqs recognized.
itifg8[D0]: (0x400)!
itifg8[D0]: < iti_intr
itifg8[D0]: > iti_fill_info
itifg8[D0]: inf mbuf size 160
itifg8[D0]: inf mbuf k-alloc 0xc85bde40
itifg8[D0]: inf sbuf size 160
itifg8[D0]: inf sbuf k-alloc 0xc85bd180
itifg8[D0]: inf fbuf size 320
itifg8[D0]: inf fbuf k-alloc 0xd51f1e00
itifg8[D0]: inf obuf size 160
itifg8[D0]: inf obuf k-alloc 0xc85bda80
itifg8[D0]: inf fpga size 40
itifg8[D0]: inf fpga k-alloc 0xd353dfc0
itifg8[D0]: inf fpga k-free 0xd353dfc0
itifg8[D0]: inf mbuf k-free 0xc85bde40
itifg8[D0]: inf sbuf k-free 0xc85bd180
itifg8[D0]: inf fbuf k-free 0xd51f1e00
itifg8[D0]: inf obuf k-free 0xc85bda80
itifg8[D0]: < iti_fill_info
itifg8[D0]: > iti_fill_info
itifg8[D0]: inf mbuf size 160
itifg8[D0]: inf mbuf k-alloc 0xc85bda80
itifg8[D0]: inf sbuf size 160
itifg8[D0]: inf sbuf k-alloc 0xc85bd180
itifg8[D0]: inf fbuf size 320
itifg8[D0]: inf fbuf k-alloc 0xcea83000
itifg8[D0]: inf obuf size 160
itifg8[D0]: inf obuf k-alloc 0xc85bde40
itifg8[D0]: inf fpga size 40
itifg8[D0]: inf fpga k-alloc 0xd353dfc0
itifg8[D0]: inf fpga k-free 0xd353dfc0
itifg8[D0]: inf mbuf k-free 0xc85bda80
itifg8[D0]: inf sbuf k-free 0xc85bd180
itifg8[D0]: inf fbuf k-free 0xcea83000
itifg8[D0]: inf obuf k-free 0xc85bde40
itifg8[D0]: < iti_fill_info
itifg8[D0]: > iti_open: flags 0x1402 (RDWR)
itifg8[D0]: -> dma_open
itifg8[D0]: <- dma_open
itifg8[D0]: > iti_irq_enable
itifg8[D0]: irq_enable end (40000)
itifg8[D0]: < iti_irq_enable
itifg8[D0]: op assume: IDLE
itifg8[D0]: op accept: OPEN
itifg8[D0]: opmode: IDLE
itifg8[D0]: ACQ ist linked
itifg8[D0]: -> acq_open
itifg8[D0]: <- acq_open
itifg8[D0]: > iti_irq_enable
itifg8[D0]: < iti_irq_enable
itifg8[D0]: op assume: IDLE
itifg8[D0]: op accept: OPEN
itifg8[D0]: rlock:1 - wlock:1
itifg8[D0]: < iti_open: ok
itifg8[D0]: > iti_ioctl: GET_CAMCNF
itifg8[D0]: inparam NULL
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_intr: 0x20400 time: 530166us
itifg8[D0]: -> acq_intr: 0x0
itifg8[D0]: opmode: OPEN
itifg8[D0]: -> dma_intr
itifg8[D0]: opmode: OPEN
itifg8[D0]: iti_intr: not all irqs recognized.
itifg8[D0]: (0x400)!
itifg8[D0]: < iti_intr
itifg8[D0]: > iti_ioctl: SET_CAMCNF
itifg8[D0]: outparam NULL
itifg8[D0]: opmode: OPEN
itifg8[D0]: > amcmp_config
itifg8[D0]: 1
itifg8[D0]: 2
itifg8[D0]: 3
itifg8[D0]: 4
itifg8[D0]: 5
itifg8[D0]: 6
itifg8[D0]: 7
itifg8[D0]: 8
itifg8[D0]: 9
itifg8[D0]: 10
itifg8[D0]: 11
itifg8[D0]: 12
itifg8[D0]: 13
itifg8[D0]: 14
itifg8[D0]: 15
itifg8[D0]: 16
itifg8[D0]: 17
itifg8[D0]: 18
itifg8[D0]: 20
itifg8[D0]: 21
itifg8[D0]: 22
itifg8[D0]: 23
itifg8[D0]: modid 0xe038
itifg8[D0]: mxctl 0xe004
itifg8[D0]: scl 0xe039
itifg8[D0]: sda 0xe001
itifg8[D0]: nptrig 0xe028
itifg8[D0]: npswtrig 0xe008
itifg8[D0]: bt829a : status 0x21
itifg8[D0]: bt829a : iform 0x58
itifg8[D0]: bt829a : tdec 0x00
itifg8[D0]: bt829a : crop 0x23
itifg8[D0]: bt829a : vdly_lo 0x1e
itifg8[D0]: bt829a : vact_lo 0x40
itifg8[D0]: bt829a : hdly_lo 0xa0
itifg8[D0]: bt829a : hact_lo 0x00
itifg8[D0]: bt829a : hscal_hi 0x03
itifg8[D0]: bt829a : hscal_lo 0x3c
itifg8[D0]: bt829a : bright 0x10
itifg8[D0]: bt829a : control 0x34
itifg8[D0]: bt829a : con_lo 0x3d
itifg8[D0]: bt829a : sat_u_lo 0xfe
itifg8[D0]: bt829a : sat_v_lo 0xb4
itifg8[D0]: bt829a : hue 0x00
itifg8[D0]: bt829a : scloop 0x40
itifg8[D0]: bt829a : reserved 0xcf
itifg8[D0]: bt829a : oform 0x86
itifg8[D0]: bt829a : vscale_hi 0x60
itifg8[D0]: bt829a : vscale_lo 0x00
itifg8[D0]: bt829a : reserved 0x01
itifg8[D0]: bt829a : reserved 0x00
itifg8[D0]: bt829a : idcode 0xe8
itifg8[D0]: bt829a : adly 0x7f
itifg8[D0]: bt829a : bdly 0x72
itifg8[D0]: bt829a : adc 0x80
itifg8[D0]: bt829a : vtc 0x40
itifg8[D0]: bt829a : reserved 0xc0
itifg8[D0]: > iti_intr: 0x20400 time: 564168us
itifg8[D0]: -> acq_intr: 0x0
itifg8[D0]: opmode: OPEN
itifg8[D0]: -> dma_intr
itifg8[D0]: opmode: OPEN
itifg8[D0]: iti_intr: not all irqs recognized.
itifg8[D0]: (0x400)!
itifg8[D0]: < iti_intr
itifg8[D0]: bt829a : reserved 0x00
itifg8[D0]: bt829a : reserved 0x7f
itifg8[D0]: bt829a : sreset 0x70
itifg8[D0]: < amcmp_config
itifg8[D0]: -> acq_startup
itifg8[D0]: -> acq_fmt_init
itifg8[D0]: width: 768, height: 576
itifg8[D0]: htaps: 1, vtaps : 1
itifg8[D0]: hdec : 0, vdec : 0
itifg8[D0]: bpp: 16
itifg8[D0]: ilace: TRUE
itifg8[D0]: line size: 1536
itifg8[D0]: frame size: 884736
itifg8[D0]: <- acq_fmt_init
itifg8[D0]: <- acq_startup
itifg8[D0]: -> dma_startup
itifg8[D0]: -> dma_fmt_init
itifg8[D0]: frame size: 888832
itifg8[D0]: trail size: 4096
itifg8[D0]: <- dma_fmt_init
itifg8[D0]: <- dma_startup
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: SET_NORM_TO8
itifg8[D0]: opmode: OPEN
itifg8[D0]: opmode: OPEN
itifg8[D0]: -> acq_fmt_init
itifg8[D0]: width: 768, height: 576
itifg8[D0]: htaps: 1, vtaps : 1
itifg8[D0]: hdec : 0, vdec : 0
itifg8[D0]: bpp: 8
itifg8[D0]: ilace: TRUE
itifg8[D0]: line size: 768
itifg8[D0]: frame size: 442368
itifg8[D0]: <- acq_fmt_init
itifg8[D0]: -> dma_fmt_init
itifg8[D0]: frame size: 446464
itifg8[D0]: trail size: 4096
itifg8[D0]: <- dma_fmt_init
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: SET_HDEC
itifg8[D0]: outparam NULL
itifg8[D0]: opmode: OPEN
itifg8[D0]: opmode: OPEN
itifg8[D0]: horiz. decimation: 2
itifg8[D0]: -> acq_fmt_init
itifg8[D0]: width: 384, height: 576
itifg8[D0]: htaps: 1, vtaps : 1
itifg8[D0]: hdec : 1, vdec : 0
itifg8[D0]: bpp: 8
itifg8[D0]: ilace: TRUE
itifg8[D0]: line size: 384
itifg8[D0]: frame size: 221184
itifg8[D0]: <- acq_fmt_init
itifg8[D0]: -> dma_fmt_init
itifg8[D0]: frame size: 225280
itifg8[D0]: trail size: 4096
itifg8[D0]: <- dma_fmt_init
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: SET_VDEC
itifg8[D0]: outparam NULL
itifg8[D0]: opmode: OPEN
itifg8[D0]: opmode: OPEN
itifg8[D0]: vert. decimation: 2
itifg8[D0]: -> acq_fmt_init
itifg8[D0]: width: 384, height: 288
itifg8[D0]: htaps: 1, vtaps : 1
itifg8[D0]: hdec : 1, vdec : 1
itifg8[D0]: bpp: 8
itifg8[D0]: ilace: TRUE
itifg8[D0]: line size: 384
itifg8[D0]: frame size: 110592
itifg8[D0]: <- acq_fmt_init
itifg8[D0]: -> dma_fmt_init
itifg8[D0]: frame size: 114688
itifg8[D0]: trail size: 4096
itifg8[D0]: <- dma_fmt_init
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: SET_CAMERA
itifg8[D0]: outparam NULL
itifg8[D0]: opmode: OPEN
itifg8[D0]: opmode: OPEN
itifg8[D0]: camera: 0
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: SET_TIMEOUT
itifg8[D0]: outparam NULL
itifg8[D0]: timeout: 1000ms (HZ=1000)
itifg8[D0]: expire: 1250
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: GET_WIDTH
itifg8[D0]: inparam NULL
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: GET_HEIGHT
itifg8[D0]: inparam NULL
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: GET_DEPTH
itifg8[D0]: inparam NULL
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: GET_RAWSIZE
itifg8[D0]: inparam NULL
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_ioctl: GET_PAGEDSIZE
itifg8[D0]: inparam NULL
itifg8[D0]: < iti_ioctl: ok
itifg8[D0]: > iti_mmap: 4194304 byte(s)
itifg8[D0]: -> dma_mmap: 1024 pages
itifg8[D0]: buf init: 4194304 (SDMA)
itifg8[D0]: dma-area alloc 0xe2f02000
itifg8[D0]: buf alloc: 0xe2f02000
itifg8[D0]: area not locked, do it.
itifg8[D0]: v:0xe2f02000->b:0x11fdb000
itifg8[D0]: v:0xe3102000->b:0x12962000
itifg8[D0]: v:0xe3301000->b:0x13329000
itifg8[D0]: <- dma_mmap
itifg8[D0]: < iti_mmap: 0xe2f02000
itifg8[DX]: t:0xb7f8f000 4194304
itifg8[DX]: f:0xe3301000
itifg8[DX]: t:0xb7d8f000 2097152
itifg8[DX]: f:0xe3101000
itifg8[DX]: t:0xb7b90000 4096
itifg8[DX]: f:0xe2f02000
itifg8[D0]: > iti_lseek: to (+-)114688, SEEKEND
itifg8[D0]: -> dma_lseek: APPEND.
itifg8[D0]: op assume: OPEN
itifg8[D0]: op accept: WORK
itifg8[D0]: buf reset: 0by (0it)
itifg8[D0]: buf adjust: 0by (0it)
itifg8[D0]: buf asize: 4128768by (36it)
itifg8[D0]: buf isize: 114688by
itifg8[D0]: 27 norm pages(s).
itifg8[D0]: 27 last pages(s).
itifg8[D0]: buf want: 114688by (1it)
itifg8[D0]: <- dma_lseek
itifg8[D0]: -> acq_lseek: APPEND.
itifg8[D0]: op assume: OPEN
itifg8[D0]: op accept: WORK
itifg8[D0]: buf reset: 0by (0it)
itifg8[D0]: buf adjust: 0by (0it)
itifg8[D0]: buf isize: 110592by
itifg8[D0]: frame size 110592
itifg8[D0]: -> 1 frame(s).
itifg8[D0]: block size 0 (whole frames)
itifg8[D0]: -> 1 block(s).
itifg8[D0]: => icp_src_init
itifg8[D0]: int for append mode
itifg8[D0]: base addr 0x0
itifg8[D0]: line_size 384
itifg8[D0]: frame_size 110592
BUG: unable to handle kernel NULL pointer dereference at virtual address
00000010
printing eip: e0ec2d8d *pde = 11fdc067 *pte = 00000000
Oops: 0002 [#1] SMP
Modules linked in: itifg8(U) nvidia(P)(U) nfs lockd nfs_acl sunrpc
rfcomm l2cap bluetooth autofs4 ipv6 dm_multipath dm_mod snd_intel8x0
snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event
snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer
firewire_ohci snd firewire_core e1000 button soundcore iTCO_wdt
crc_itu_t parport_pc iTCO_vendor_support parport i2c_i801 serio_raw
snd_page_alloc i2c_core joydev dcdbas floppy sr_mod sg cdrom ata_piix
ata_generic libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd
ehci_hcd
CPU: 0
EIP: 0060:[<e0ec2d8d>] Tainted: P VLI
EFLAGS: 00010246 (2.6.23.15-137.fabien.fc8 #1)
EIP is at icp_src_init+0xfd/0x1c0 [itifg8]
eax: 00000000 ebx: 00000000 ecx: 00000010 edx: 00000010
esi: 00000000 edi: d27750dc ebp: dfe25314 esp: d5d2ef0c
ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
Process test_itifg (pid: 11449, ti=d5d2e000 task=c6b38610 task.ti=d5d2e000)
Stack: 01557000 00000001 e0ec2c90 dfe25314 dfe25338 dfe25300 e0ebdada
00000000
00000001 e0ebea2e 0001b000 00000400 00010078 0001c000 00010400
00200000
00000000 00000000 d2775000 00001402 e0ebad9f 00001402 0001c000
00000002
Call Trace:
[<e0ec2c90>] icp_src_init+0x0/0x1c0 [itifg8]
[<e0ebdada>] acq_lseek+0x42a/0x620 [itifg8]
[<e0ebea2e>] dma_lseek+0x8e/0x2f0 [itifg8]
[<e0ebad9f>] iti_lseek+0x14f/0x230 [itifg8]
[<e0ee3180>] iti_os_llseek+0x0/0x20 [itifg8]
[<e0ee3198>] iti_os_llseek+0x18/0x20 [itifg8]
[<c0480cd6>] vfs_llseek+0x35/0x39
[<c0481d2d>] sys_lseek+0x3c/0x66
[<c040518a>] syscall_call+0x7/0xb
=======================
Code: 80 7c 24 03 00 74 5f 46 3b 74 24 04 74 58 8b 17 8d 1c b5 00 00 00
00 89 d9 8b 42 2c 8b 52 30 01 c1 89 f0 0f af 45 20 03 44 24 1c <89> 04
1a 89 01 80 7d 00 00 74 b9 8b 45 18 85 c0 75 b2 ba 01 00
EIP: [<e0ec2d8d>] icp_src_init+0xfd/0x1c0 [itifg8] SS:ESP 0068:d5d2ef0c
itifg8[D0]: > iti_close: flags 0x1402
itifg8[D0]: rlock:0 - wlock:0
itifg8[D0]: del timer
itifg8[D0]: > iti_irq_disable
itifg8[D0]: < iti_irq_disable
itifg8[D0]: op assume: XXXX
itifg8[D0]: op accept: IDLE
itifg8[D0]: -> acq_close
itifg8[D0]: buf reset: 0by (0it)
itifg8[D0]: buf adjust: 0by (0it)
itifg8[D0]: <- acq_close
itifg8[D0]: del timer
itifg8[D0]: > iti_irq_disable
itifg8[D0]: < iti_irq_disable
itifg8[D0]: op assume: XXXX
itifg8[D0]: op accept: IDLE
itifg8[D0]: -> dma_close
itifg8[D0]: dma stop
itifg8[D0]: -> dma_munmap
itifg8[D0]: area is locked, unlock it.
itifg8[D0]: buf free: 0xe2f02000
itifg8[D0]: dma-area free 0xe2f02000
itifg8[D0]: buf fini
itifg8[D0]: <- dma_munmap
itifg8[D0]: <- dma_close
itifg8[D0]: < iti_close: ok
Fabien
M....@go... a écrit :
> Hello Fabien,
>
> the 'struct_module' isn't your problem. We have it here too (sometimes).
> It is only important for modinfo/modprobe and other module utilities.
> And the handling changes EVERY kernel version, so I give up sometimes :-(
>
> Also the 'invalid board pointer' isn't the problem. These messages are
> only generated during the initialization phase, most times when interrupts
> are shared.
>
> Please load the debugging module (itifg8_g.ko) and start the test_program:
> -t 1 (make only one image) is a useful option to not blast
> /var/log/messages.
>
> Please send me the full output including the 'NULL pointer access'.
>
> matthias
> _________________________________________________
> Matthias Stein,
> GOM Gesellschaft fuer Optische Messtechnik mbH,
> Mittelweg 7-8, 38106 Braunschweig, Germany
> E-mail: M....@go..., Internet: http://www.gom.com
> Tel.: +49 (0)531 39029-0, Fax: +49 (0)531 39029-15
> Amtsgericht Handelsregister Braunschweig, HRB-Nr.: 3131
> Geschaeftsfuehrer: Dr.-Ing. K. Galanulis, Dr.-Ing. D. Winter
>
>
> This e-mail is confidential. If you have received it in error, you are on
> notice of its status.
> Please notify us immediately by reply e-mail and delete this message from
> your system.
> Please do not copy it or use it for any purposes, or disclose its contents
> to any other person;
> to do so could be a breach of confidence.
> Thank you for your co-operation.
>
>
>
>
> Fabien Spindler
> <fspindle@irisa.f
> r> To
> M....@go...
> 04.03.2008 11:02 cc
> iti...@li...,
> Fabien Spindler
> <Fab...@ir...>
> Subject
> Re: [Itifg-tech] itifg-8.4.0-0
> released
>
>
>
>
>
>
>
>
>
>
> Matthias,
>
> I have rebuilt a 2.6.23 kernel to be able to precise the switches. Fo
> example switches for cmd_drivers/firewire/fw-card.o := gcc -m32
> -Wp,-MD,drivers/firewire/.fw-card.o.d -nostdinc -isystem
> /usr/lib/gcc/i386-redhat-linux/4.1.2/include -D__KERNEL__ -Iinclude
> -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes
> -Wno-trigraphs -fno-strict-aliasing -fno-common
> -Werror-implicit-function-declaration -Os -pipe -msoft-float -mregparm=3
> -freg-struct-return -mpreferred-stack-boundary=2 -march=i586
> -mtune=generic -mtune=generic -ffreestanding -maccumulate-outgoing-args
> -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1
> -Iinclude/asm-i386/mach-generic -Iinclude/asm-i386/mach-default
> -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement
> -Wno-pointer-sign -DMODULE -D"KBUILD_STR(s)=\#s"
> -D"KBUILD_BASENAME=KBUILD_STR(fw_card)"
> -D"KBUILD_MODNAME=KBUILD_STR(firewire_core)" -c -o
> drivers/firewire/fw-card.o drivers/firewire/fw-card.c
>
>
> After make config, in itifg-8.4.0-0/.system I have
> KFLAGS = -isystem /usr/lib/gcc/i386-redhat-linux/4.1.2/include -I.
> -I/lib/modules/2.6.23.15-137.fc8/build/include
> -I/lib/modules/2.6.23.15-137.fc8/build/include /asm-i386/mach-default
> -include linux/autoconf.h -D__KERNEL__ -DMODULE -D"KBUILD_STR(s)=\#s"
> -D"KBUILD_BASENAME=KBUILD_STR(itifg8)"
> -D"KBUILD_MODNAME=KBUILD_STR(itifg8)" -fno-strict-aliasing -fno-common
> -ffreestanding -fomit-frame-pointer -march=i686
> -mpreferred-stack-boundary=2
>
> As you suggest I have added -mregparm=3 and modified -march=i586.
>
> I have just seen that when I make static, I have the error
> make[1]: Entering directory
> `/local/soft/itifg/itifg-8.4.0-0.irisa/src/osdep'
> sh osLinux26.sh
> ERROR: "struct_module" [itifg8.ko] undefined!
>
> When I insmod src/osdep/itifg8.ko dmesg gives me a lot time the same error:
>
> itifg8[IX]: Shutdown logical device 0
> itifg8[IX]: Configure physical device 0
> itifg8[I0]: IC-PCI found
> ....
> itifg8[NX]: iti_intr: invalid board pointer.
> itifg8[NX]: (0xc46b6800)
> itifg8[NX]: iti_intr: invalid board pointer.
> itifg8[NX]: (0xc46b6800)
> itifg8[IX]: 1 physical device(s) found
> itifg8[IX]: Version 8.4.0-0 (build#22)
> itifg8[IX]: Mar 3 2008 (Linux 2.6.23.15-137.fc8).
>
>
> And when I run the test a get a segfault and a kernel panic
>
> genesis[15:48]%./test_itifg -f ../conffiles/robot.cam -d 8 -z 2 -p 2 -m -i
>
> Driver version: 8.4.0-0.
> Compilation Date: Mar 3 2008.
> Boards detected: 1.
> Module type board 0: AM-STD-COMP.
>
> 0 - conffile: ../conffiles/robot.cam
> 0 - savefile: test_itifg
> 0 - save: TRUE
> 0 - display: FALSE
> 0 - wait: FALSE
> 0 - useshm: TRUE
> 0 - match: TRUE
> 0 - contig: FALSE
> 0 - other: FALSE
> 0 - update: TRUE
> 0 - board: 0
> 0 - module: 7
> 0 - camera: 2
> 0 - depth: 8
> 0 - scales: 64
> 0 - buffer: 1
> 0 - frames: 2147483647
> 0 - zoom: 2
> 0 - rate: 1.00
> 0 - syncmd: block
> 0 - sacqmd: normal
> 0 - lutmd: blkwht
> CameraName : various cameras - PAL 768x576 fps:25 (8+8bit) Port 2.
> ExoFilename: .
>
> Image width: 384.
> Image height: 288.
> Image depth: 8.
> Source bits_per_pixel: 8.
> Source bytes_per_line: 384.
> Source pointer: 0xb7f90000.
> Source offset: 0.
> Incident de segmentation
> genesis[15:50]%
> Message from syslogd@genesis at Mar 3 15:50:31 ...
> kernel: Oops: 0002 [#1] SMP
>
> Message from syslogd@genesis at Mar 3 15:50:31 ...
> kernel: CPU: 0
>
> Message from syslogd@genesis at Mar 3 15:50:31 ...
> kernel: EIP: 0060:[<e0d26d2c>] Tainted: P VLI
>
> Message from syslogd@genesis at Mar 3 15:50:31 ...
> kernel: EFLAGS: 00210202 (2.6.23.15-137.fc8 #1)
>
>
> dmegs gives the following errors:
>
> itifg8[IX]: Version 8.4.0-0 (build#22)
> itifg8[IX]: Mar 3 2008 (Linux 2.6.23.15-137.fc8).
> BUG: unable to handle kernel NULL pointer dereference at virtual address
> 00000010
> printing eip: e0d26d2c *pde = 0bb86067 *pte = 00000000
> Oops: 0002 [#1] SMP
> Modules linked in: itifg8(U)
>
> I think, that the problem is due to the ERROR: "struct_module"
> [itifg8.ko] undefined! But I can't figure out how to modify the driver
> to suppress this error.
>
> If you have an idea...
> Many thanks
>
> PS: To be able to compile itifg-8.4.0.0 on a 2.6.23 kernel a have done
> some modifications in the code (see the attached patch).
>
> Fabien
>
>
> M....@go... a écrit :
>> Hello Fabien,
>>
>> this is the first call back into the kernel framework, that is done by
> the
>> init subroutine.
>>
>> Last time this happens, the compiler switches of the kernel and the itifg
>> doesn't match. Unfortunately I still don't use the kernels's module
>> compiling
>> support :-(
>>
>> To check whats happens, I need some idea, what switches the kernel wants.
>> The easiest way is to have one of the .*.cmd files, that are generated
> into
>> every kernel source directory. E.g. drivers/ieee1394/.ohci1394.o.cmd
>> Additional
>> to this your .system into the itifg directory is helpful.
>>
>> One switch, that I know to be problematic is -mregparm=3.
>>
>> matthias
>> _________________________________________________
>> Matthias Stein,
>> GOM Gesellschaft fuer Optische Messtechnik mbH,
>> Mittelweg 7-8, 38106 Braunschweig, Germany
>> E-mail: M....@go..., Internet: http://www.gom.com
>> Tel.: +49 (0)531 39029-0, Fax: +49 (0)531 39029-15
>> Amtsgericht Handelsregister Braunschweig, HRB-Nr.: 3131
>> Geschaeftsfuehrer: Dr.-Ing. K. Galanulis, Dr.-Ing. D. Winter
>>
>>
>> This e-mail is confidential. If you have received it in error, you are on
>> notice of its status.
>> Please notify us immediately by reply e-mail and delete this message from
>> your system.
>> Please do not copy it or use it for any purposes, or disclose its
> contents
>> to any other person;
>> to do so could be a breach of confidence.
>> Thank you for your co-operation.
>>
>>
>> iti...@li... wrote on 14.02.2008 15:48:16:
>>
>>> Hello Matthias,
>>>
>>> Thanks for this new version.
>>>
>>> I try to use it on a Fedora 8 (kernel 2.6.23.9-85.fc8 #1 SMP). I'm able
>>> to build the module, but when I insmod itifg8_g.ko dmesg gives the
>>> followings errors:
>>>
>>> itifg8[IX]: Debug output enabled
>>> itifg8[IX]: Debug level is 127 (0x7f)
>>> itifg8[DX]: >> iti_os_attach
>>> itifg8[DX]: >> before class_create() call
>>> BUG: unable to handle kernel paging request at virtual address 00200000
>>> printing eip: c04f6701 *pde = 17390067 *pte = 00000000
>>> Oops: 0000 [#1] SMP
>>> Modules linked in: itifg8(U) nfs lockd nfs_acl sunrpc rfcomm l2cap
>>> bluetooth autofs4 ipv6 dm_multipath dm_mod raw1394(U) video1394(U)
>>> snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss
>>> snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss nvidia(P)(U)
>>> ohci1394(U) snd_mixer_oss i2c_i801 iTCO_wdt ieee1394(U) e1000 snd_pcm
>>> parport_pc button iTCO_vendor_support i2c_core snd_timer snd dcdbas
>>> serio_raw parport soundcore joydev snd_page_alloc sg sr_mod floppy cdrom
>>> ata_generic ata_piix libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd
>>> ohci_hcd ehci_hcd
>>> CPU: 0
>>> EIP: 0060:[<c04f6701>] Tainted: P VLI
>>> EFLAGS: 00210297 (2.6.23.9-85.fc8 #1)
>>> EIP is at strnlen+0x6/0x15
>>> eax: 00200000 ebx: 00200000 ecx: 00200000 edx: fffffffe
>>> esi: d735841c edi: d738ce48 ebp: ffffffff esp: d738cdd4
>>> ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
>>> Process insmod (pid: 2495, ti=d738c000 task=d72e0610 task.ti=d738c000)
>>> Stack: c04f5e01 ffffffff 00000000 e0e41565 d738ce20 dfe42400 e0e5a144
>>> 00000014
>>> d735841c 00e5a144 00000000 d7358430 ffffffff 00000000 c06a8b13
>>> d7358400
>>> d735841c d735841c d738ce48 c04f2fca d738ce48 d738ce48 d7358400
>>> fffffff4
>>> Call Trace:
>>> [<c04f5e01>] vsnprintf+0x2b7/0x484
>>> [<c04f2fca>] kobject_set_name+0x2b/0x92
>>> [<c0567bc6>] class_register+0x64/0x108
>>> [<c056819e>] class_create+0x40/0x56
>>> [<e0a6314d>] itifg_init+0x14d/0x3e4 [itifg8]
>>> [<c0449303>] __link_module+0x0/0x10
>>> [<c044ab86>] sys_init_module+0x150d/0x1651
>>> [<c04f1ea6>] _atomic_dec_and_lock+0x2a/0x44
>>> [<c04935c0>] mntput_no_expire+0x11/0x6a
>>> [<c040518a>] syscall_call+0x7/0xb
>>> =======================
>>> Code: c9 74 0c f2 ae 74 05 bf 01 00 00 00 4f 89 fa 5f 89 d0 c3 85 c9 57
>>> 89 c7 89 d0 74 05 f2 ae 75 01 4f 89 f8 5f c3 89 c1 89 c8 eb 06 <80> 38
>>> 00 74 07 40 4a 83 fa ff 75 f4 29 c8 c3 57 83 c9 ff 56 89
>>> EIP: [<c04f6701>] strnlen+0x6/0x15 SS:ESP 0068:d738cdd4
>>>
>>>
>>>
>>> The error seems produced by the line
>>> itifg_class = class_create (THIS_MODULE, ITI_DEV_STRING);
>>> in src/osdep/osLinux26.c in iti_os_attach().
>>>
>>> Do you have an idea ?
>>>
>>> Thanks
>>>
>>> Fabien
>>> --
>>> Fabien Spindler, Equipe Lagadic, Irisa - Inria
>>> Campus universitaire de Beaulieu 35042 Rennes cedex France
>>> Tel: +33 2.99.84.75.10, Fax: +33 2.99.84.71.71
>>> E-mail: Fab...@ir..., web: http://www.irisa.fr/lagadic
>>>
>>>
> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by: Microsoft
>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>> _______________________________________________
>>> Itifg-tech mailing list
>>> Iti...@li...
>>> https://lists.sourceforge.net/lists/listinfo/itifg-tech
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> _______________________________________________
>> Itifg-tech mailing list
>> Iti...@li...
>> https://lists.sourceforge.net/lists/listinfo/itifg-tech
>>
>
>
> --
> Fabien Spindler, Equipe Lagadic, Irisa - Inria
> Campus universitaire de Beaulieu 35042 Rennes cedex France
> Tel: +33 2.99.84.75.10, Fax: +33 2.99.84.71.71
> E-mail: Fab...@ir..., web: http://www.irisa.fr/lagadic
> Index: config.sh
> ===================================================================
> RCS file: /udd/fspindle/robot/cvsroot/driver/itifg84/config.sh,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -8 -p -r1.1.1.1 -r1.2
> --- config.sh 28 Feb 2008 17:33:27 -0000 1.1.1.1
> +++ config.sh 28 Feb 2008 18:28:05 -0000 1.2
> @@ -1,16 +1,16 @@
> #!/bin/sh
> # ITI-FG Kernel module free public release
> #
> # Copyright (C) 1996-2004 GOM mbH.
> # Mittelweg 7-8, 38106 Braunschweig, GERMANY
> # All rights reserved
> #
> -# $Id: config.sh,v 1.1.1.1 2008/02/28 17:33:27 fspindle Exp $
> +# $Id: config.sh,v 1.2 2008/02/28 18:28:05 fspindle Exp $
> #
> #
>
> # set -x
>
> if [ -z $SYSTEM ]; then
> SYSTEM=`uname -s`
> fi
> @@ -52,23 +52,23 @@ Linux)
>
> fgrep 'CONFIG_HIGHMEM64G=y' $KSRCDIR/.config > /dev/null
> if [ $? -eq "0" ]; then
> echo -n "Please don't use the 64G option,"
> echo " this will not work proberly (32bit=4G)!"
> exit 1
> fi
>
> - echo -n " -nostdinc -isystem${GCCDIR}include" >> .system
> + echo -n " -isystem${GCCDIR}include" >> .system
> echo -n " -I. -I$KSRCDIR/include" >> .system
>
> fgrep 'CONFIG_X86_PC=y' $KSRCDIR/.config > /dev/null
> - if [ $? -eq "0" ]; then
> + #if [ $? -eq "0" ]; then
> echo -n " -I$KSRCDIR/include/asm-i386/mach-default" >> .system
> - fi
> + #fi
>
> echo -n " -include linux/autoconf.h" >> .system
>
> echo -n " -D__KERNEL__ -DMODULE" >> .system
> if [ $BUILD -lt "16" ]; then
> echo -n " -D\"KBUILD_BASENAME=itifg8\"" >> .system
> echo -n " -D\"KBUILD_MODNAME=itifg8\"" >> .system
> else
> Index: src/itifgOS.h
> ===================================================================
> RCS file: /udd/fspindle/robot/cvsroot/driver/itifg84/src/itifgOS.h,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -8 -p -r1.1.1.1 -r1.2
> --- src/itifgOS.h 28 Feb 2008 17:33:28 -0000 1.1.1.1
> +++ src/itifgOS.h 28 Feb 2008 18:28:13 -0000 1.2
> @@ -1,16 +1,16 @@
> /* ITI-FG Kernel module free public release
> *
> * Copyright (C) 1996-2004 GOM mbH.
> * Mittelweg 7-8, 38106 Braunschweig, GERMANY
> * All rights reserved
> *
> *
> - * $Id: itifgOS.h,v 1.1.1.1 2008/02/28 17:33:28 fspindle Exp $
> + * $Id: itifgOS.h,v 1.2 2008/02/28 18:28:13 fspindle Exp $
> *
> */
>
> #ifndef _ITIFGOS_H
> #define _ITIFGOS_H
>
> /*
> * Includes:
> @@ -197,17 +197,17 @@ typedef enum
> # define LOFF_F "%ld"
> # define SIZE_F "%ld"
> #endif
>
> /*
> * Typedefs:
> */
>
> -typedef char bool;
> +/*typedef char bool;*/
>
> /* which common resource should be protected */
> typedef enum
> {
> ITI_LOCK_IRQ, /* async pathes (irq handler, timout
> handler) */
> ITI_LOCK_OPM, /* operation mode */
> ITI_LOCK_BUF, /* buffer members */
> ITI_LOCK_REG, /* shared register sets */
> Index: src/osdep/osLinux26.c
> ===================================================================
> RCS file:
> /udd/fspindle/robot/cvsroot/driver/itifg84/src/osdep/osLinux26.c,v
> retrieving revision 1.1.1.1
> retrieving revision 1.3
> diff -u -8 -p -r1.1.1.1 -r1.3
> --- src/osdep/osLinux26.c 28 Feb 2008 17:33:30 -0000
> 1.1.1.1
> +++ src/osdep/osLinux26.c 29 Feb 2008 10:56:55 -0000
> 1.3
> @@ -1,15 +1,15 @@
> /* ITI-FG Kernel module free public release
> *
> * Copyright (C) 1996-2004 GOM mbH.
> * Mittelweg 7-8, 38106 Braunschweig, GERMANY
> * All rights reserved
> *
> - * $Id: osLinux26.c,v 1.1.1.1 2008/02/28 17:33:30 fspindle Exp $
> + * $Id: osLinux26.c,v 1.3 2008/02/29 10:56:55 fspindle Exp $
> *
> */
>
> #if defined(__alpha__) || defined(__sparc_v9__) || \
> defined(__ia64__) || defined(__x86_64__)
> # define ITI_IS64BIT /* one define for all 64bit machines */
> #endif
>
> @@ -55,16 +55,19 @@
>
> #include <linux/kdev_t.h> /* MAJOR / MINOR */
> #include <linux/major.h> /* MAX_CHRDEV */
> #include <linux/device.h> /* class_device_register */
>
> #include <linux/pci.h> /* pci_register_driver */
> #include <linux/dma-mapping.h> /* dma abstraction laver */
> #include <linux/proc_fs.h> /* proc filesystem defines */
> +#if LINUX_VERSION_CODE >= 0x020617 /* 2.6.23 */
> +#include <linux/freezer.h> /* try_to_freeze() */
> +#endif
>
> #if LINUX_VERSION_CODE < 0x02060c /* 2.6.12 */
> #include <linux/suspend.h> /* refigerator */
> #endif
>
> #if LINUX_VERSION_CODE < 0x020609
> #error "Only kernel 2.6 - starting with .9 - is supported!" /* vprintk! */
> #endif
> @@ -185,18 +188,24 @@ struct iti_osp_t
> struct semaphore hotplug_run;
> struct completion hotplug_done;
> };
>
> /*
> * Prototypes:
> */
>
> +#if LINUX_VERSION_CODE < 0x020617 /* 2.6.23 */
> static irqreturn_t
> iti_os_interrupt (int, void*, struct pt_regs*);
> +#else
> +static irqreturn_t
> +iti_os_interrupt (int, void*);
> +#endif
> +
> static void
> iti_os_timeout (u_long);
>
> static int
> iti_os_open (struct inode*, struct file*);
> static int
> iti_os_release (struct inode*, struct file*);
> static ssize_t
> @@ -1527,18 +1536,23 @@ iti_noprint (struct iti_osp_t *osp, cons
> }
>
> /*
> -------------------------------------------------------------------------
> */
>
> /*
> * iti_os_interrupt
> */
>
> +#if LINUX_VERSION_CODE < 0x020617 /* 2.6.23 */
> static irqreturn_t
> iti_os_interrupt (int irq, void *dev_id, struct pt_regs *regs)
> +#else
> +static irqreturn_t
> +iti_os_interrupt (int irq, void *dev_id)
> +#endif
> {
> itifg_t *iti = (itifg_t*)dev_id;
>
> #if (0)
> if (irq != iti->osp->irq_line)
> {
> iti_printn (iti->osp, "device irq does not match!\n");
> return 0;
> @@ -2188,24 +2202,35 @@ iti_os_pci_init (struct iti_osp_t *osp,
> if (osp->irq_line == 0 || osp->irq_line == 255)
> {
> osp->irq_line = 255;
> iti_printw (osp, "interrupt disabled!\n");
> return -EINVAL;
> }
>
> /* register interrupt line */
> +#if LINUX_VERSION_CODE < 0x020617 /* 2.6.23 */
> if ((error = request_irq (osp->irq_line,
> &iti_os_interrupt,
> SA_SHIRQ,
> ITI_IRQ_STRING, iti)))
> if ((error = request_irq (osp->irq_line,
> &iti_os_interrupt,
> SA_INTERRUPT | SA_SHIRQ,
> ITI_IRQ_STRING, iti)))
> +#else
> + if ((error = request_irq (osp->irq_line,
> + &iti_os_interrupt,
> + IRQF_SHARED,
> + ITI_IRQ_STRING, iti)))
> + if ((error = request_irq (osp->irq_line,
> + &iti_os_interrupt,
> + IRQF_DISABLED | IRQF_SHARED,
> + ITI_IRQ_STRING, iti)))
> +#endif
> {
> iti_printw (osp, "'request_irq' (intr. %d) failed.\n",
> osp->irq_line);
> return error;
> }
>
> #if defined(__powerpc__)
> {
> @@ -2546,20 +2571,23 @@ iti_os_detach_single (struct pci_dev *de
>
> ITI_PRINT0(NULL, "<< iti_os_detach_single\n");
> return;
> }
>
> static int
> itifg_pci_resume (struct pci_dev *dev)
> {
> + int retval = 0;
> pci_restore_state (dev);
> - pci_enable_device (dev);
> + retval = pci_enable_device (dev);
> + if (retval)
> + iti_printn (NULL, "pci_enable_device failed in resume.\n");
>
> - return 0;
> + return retval;
> }
>
> static void
> itifg_pci_remove(struct pci_dev *dev)
> {
> iti_os_detach_single (dev);
> }
>
> @@ -2654,19 +2682,23 @@ iti_os_detach (void)
>
> pboard = lboard = 0;
>
> remove_proc_entry (ITI_PFS_STRING, NULL);
>
> /* do board by board deinit with kernel iterator function */
> pci_unregister_driver (&itifg_pci_driver);
>
> +#if LINUX_VERSION_CODE < 0x020617 /* 2.6.23 */
> if (unregister_chrdev (major, ITI_DEV_STRING) < 0)
> iti_printw (NULL, "'unregister_chrdev' (device %d) failed.\n", major);
> -
> +#else
> + unregister_chrdev (major, ITI_DEV_STRING);
> +#endif
> +
> #if LINUX_VERSION_CODE < 0x02060c /* 2.6.12 */
> class_simple_destroy (itifg_class);
> #else
> class_destroy (itifg_class);
> #endif
>
> iti_os_tty_detach ();
>
> Index: src/osdep/osLinux26.sh
> ===================================================================
> RCS file:
> /udd/fspindle/robot/cvsroot/driver/itifg84/src/osdep/osLinux26.sh,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -8 -p -r1.1.1.1 -r1.2
> --- src/osdep/osLinux26.sh 28 Feb 2008 17:33:30 -0000
> 1.1.1.1
> +++ src/osdep/osLinux26.sh 28 Feb 2008 18:28:13 -0000
> 1.2
> @@ -69,17 +69,17 @@ if [ ! -x $MODP ]; then
> echo "modpost utility not found, exiting..."
> exit 1
> fi
>
> for i in $FILES; do
> if [ "$NEWONE" -lt 1 ]; then
> $MODP ${i}.o
> else
> - $MODP -m -i ${KSRC}/Module.symvers ${KSRC}/vmlinux ${i}.o -o
> ${i}.symvers
> + $MODP -m -i ${KSRC}/Module.symvers ${i}.o -o ${i}.symvers
> fi
> make ${i}.mod.o
> if [ $? -ne 0 ]; then
> exit 1
> fi
> ld -r -o ${i}.ko ${i}.o ${i}.mod.o
> done
>
> Index: src/osdep/osLinux26TTY.c
> ===================================================================
> RCS file:
> /udd/fspindle/robot/cvsroot/driver/itifg84/src/osdep/osLinux26TTY.c,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -8 -p -r1.1.1.1 -r1.2
> --- src/osdep/osLinux26TTY.c 28 Feb 2008 17:33:30 -0000
> 1.1.1.1
> +++ src/osdep/osLinux26TTY.c 29 Feb 2008 10:56:55 -0000
> 1.2
> @@ -1,15 +1,15 @@
> /* ITI-FG Kernel module free public release
> *
> * Copyright (C) 1996-2004 GOM mbH.
> * Mittelweg 7-8, 38106 Braunschweig, GERMANY
> * All rights reserved
> *
> - * $Id: osLinux26TTY.c,v 1.1.1.1 2008/02/28 17:33:30 fspindle Exp $
> + * $Id: osLinux26TTY.c,v 1.2 2008/02/29 10:56:55 fspindle Exp $
> *
> */
>
> /*
> * Includes:
> */
>
> #include <linux/version.h>
> @@ -30,17 +30,21 @@
> /*
> * Globals:
> */
>
> static struct tty_driver iti_tdrv;
>
> static struct tty_struct **iti_ttys = NULL, **iti_int_ttys = NULL;
>
> +#if LINUX_VERSION_CODE < 0x020617 /* 2.6.23 */
> static struct termios **iti_termios = NULL, **iti_termios_locked = NULL;
> +#else
> +static struct ktermios **iti_termios = NULL, **iti_termios_locked = NULL;
> +#endif
>
> /* static */ char x_char; /* FIXME */
>
> /*
> * Prototypes:
> */
>
> static int
> @@ -195,18 +199,23 @@ iti_os_tty_stop (struct tty_struct *ttys
> {
> }
>
> static void
> iti_os_tty_start (struct tty_struct *ttys)
> {
> }
>
> +#if LINUX_VERSION_CODE < 0x020617 /* 2.6.23 */
> static void
> iti_os_tty_set_termios (struct tty_struct *ttys, struct termios *old)
> +#else
> +static void
> +iti_os_tty_set_termios (struct tty_struct *ttys, struct ktermios *old)
> +#endif
> {
> iti_file_t file;
> iti_devno_t devno;
>
> union iti_inparam_t inparam;
>
> if (iti_os_tty_encode_devno (&devno, ttys->index))
> return;
> @@ -367,30 +376,47 @@ iti_os_tty_attach (int boards)
> sizeof(struct tty_struct*),
> GFP_KERNEL);
> if (!iti_ttys) return -ENOMEM;
> ITI_PRINT3(NULL, " ttys: 0x%p\n", iti_ttys);
> memset (iti_ttys, 0, num_devices * sizeof(struct tty_struct*));
>
> iti_tdrv.ttys = iti_ttys;
>
> +#if LINUX_VERSION_CODE < 0x020617 /* 2.6.23 */
> ITI_PRINT3(NULL, " termios: %d\n", num_devices * sizeof(struct
> termios*));
> iti_termios = (struct termios**)kmalloc (num_devices *
> sizeof(struct termios*),
> GFP_KERNEL);
> if (!iti_termios) return -ENOMEM;
> ITI_PRINT3(NULL, " termios: 0x%p\n", iti_termios);
> memset (iti_termios, 0, num_devices * sizeof(struct termios*));
>
> iti_termios_locked = (struct termios**)kmalloc (num_devices *
> sizeof(struct termios*),
> GFP_KERNEL);
> if (!iti_termios_locked) return -ENOMEM;
> ITI_PRINT3(NULL, " termios l: 0x%p\n", iti_termios_locked);
> memset (iti_termios_locked, 0, num_devices * sizeof(struct termios*));
> +#else
> + ITI_PRINT3(NULL, " termios: %d\n", num_devices * sizeof(struct
> ktermios*));
> + iti_termios = (struct ktermios**)kmalloc (num_devices *
> + sizeof(struct ktermios*),
> + GFP_KERNEL);
> + if (!iti_termios) return -ENOMEM;
> + ITI_PRINT3(NULL, " termios: 0x%p\n", iti_termios);
> + memset (iti_termios, 0, num_devices * sizeof(struct ktermios*));
> +
> + iti_termios_locked = (struct ktermios**)kmalloc (num_devices *
> + sizeof(struct
> ktermios*),
> + GFP_KERNEL);
> + if (!iti_termios_locked) return -ENOMEM;
> + ITI_PRINT3(NULL, " termios l: 0x%p\n", iti_termios_locked);
> + memset (iti_termios_locked, 0, num_devices * sizeof(struct ktermios*));
> +#endif
>
> iti_tdrv.termios = iti_termios;
> iti_tdrv.termios_locked = iti_termios_locked;
> iti_tdrv.driver_state = NULL;
>
> iti_tdrv.open = iti_os_tty_open;
> iti_tdrv.close = iti_os_tty_close;
> iti_tdrv.write = iti_os_tty_write;
>
>
>
>
--
Fabien Spindler, Equipe Lagadic, Irisa - Inria
Campus universitaire de Beaulieu 35042 Rennes cedex France
Tel: +33 2.99.84.75.10, Fax: +33 2.99.84.71.71
E-mail: Fab...@ir..., web: http://www.irisa.fr/lagadic
|