2008-11-07 05:58:39     Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Document created by Aaronwu Employee on Aug 8, 2013
Version 1Show Document
  • View in full screen mode

2008-11-07 05:58:39     Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Ivan Kuten (BELARUS)

Message: 64823   

 

Hello,

 

Has anybody seen such crashes with USB WiFi (isp1760 and rtl8187)?

 

It is triggered when playing with iwconfig.

 

--------------------

 

Data access misaligned address violation

- Attempted misaligned data memory or data cache access.

Kernel OOPS in progress

Deferred Exception context

 

No Valid process in current context

return address: [0x00154f54]; contents of:

0x00154f30:  ce82  cc01  b277  0000  3222  ce82  c204  b2b7

0x00154f40:  0000  3015  63f8  e3fa  66e5  5065  3211  43c0

0x00154f50:  300e  3054 [9310] acaa  3045  0062  6010  e14a

0x00154f60:  001d  b130  e10a  d9b0  ce82  81a4  9111  0000

 

SEQUENCER STATUS:               Not tainted

SEQSTAT: 00062024  IPEND: c030  SYSCFG: 0006

  HWERRCAUSE: 0x18

  EXCAUSE   : 0x24

  physical IVG14 asserted : <0xffa00ad0> { _evt14_softirq + 0x0 }

  physical IVG15 asserted : <0xffa00e14> { _evt_system_call + 0x0 }

  logical irq   6 mapped  : <0xffa00364> { _timer_interrupt + 0x0 }

  logical irq  12 mapped  : <0x001031ac> { _rx_handler + 0x0 }

  logical irq  13 mapped  : <0x00103208> { _tx_handler + 0x0 }

  logical irq  18 mapped  : <0x000b74f8> { _bfin_serial_dma_rx_int + 0x0 }

  logical irq  19 mapped  : <0x000b7464> { _bfin_serial_dma_tx_int + 0x0 }

  logical irq  24 mapped  : <0x000bff74> { _bfin_mac_interrupt + 0x0 }

  logical irq  45 mapped  : <0x00103d1c> { _err_handler + 0x0 }

  logical irq  54 mapped  : <0x039ca0a4> { :gpio_keys:_show_reset_state + 0x38 }

  logical irq  55 mapped  : <0x039ca0a4> { :gpio_keys:_show_reset_state + 0x38 }

  logical irq  56 mapped  : <0x039ca0a4> { :gpio_keys:_show_reset_state + 0x38 }

  logical irq  57 mapped  : <0x039ca0a4> { :gpio_keys:_show_reset_state + 0x38 }

  logical irq  58 mapped  : <0x039ca0a4> { :gpio_keys:_show_reset_state + 0x38 }

  logical irq  59 mapped  : <0x039ca0a4> { :gpio_keys:_show_reset_state + 0x38 }

  logical irq  74 mapped  : <0x000d67a4> { _usb_hcd_irq + 0x0 }

  logical irq  76 mapped  : <0x00208800> { _bfin_init_mmr_debugfs + 0x3ba0 }

  logical irq  77 mapped  : <0x00208800> { _bfin_init_mmr_debugfs + 0x3ba0 }

  logical irq  78 mapped  : <0x039ca0a4> { :gpio_keys:_show_reset_state + 0x38 }

RETE: <0x00000000> /* Maybe null pointer? */

RETN: <0x001fda80> /* unknown address */

RETX: <0x00000480> /* Maybe fixed code section */

RETS: <0x00154f4a> { _ieee80211_wep_encrypt_data + 0x32 }

PC  : <0x00154f54> { _ieee80211_wep_encrypt_data + 0x3c }

DCPLB_FAULT_ADDR: <0x03b9bde8> /* unknown address */

ICPLB_FAULT_ADDR: <0x00154f54> { _ieee80211_wep_encrypt_data + 0x3c }

 

PROCESSOR STATE:

R0 : ba8c75dd    R1 : 030a69e0    R2 : 00000008    R3 : 45738a22

R4 : 031f542c    R5 : 00000047    R6 : 030a69e0    R7 : 00000000

P0 : 031f5473    P1 : 00000003    P2 : 031f5473    P3 : 031f5410

P4 : 00000008    P5 : 03b9bde0    FP : 00000063    SP : 001fd9a4

LB0: ffa016b4    LT0: ffa016b2    LC0: 00000000

LB1: 000a1d4a    LT1: 000a1d3a    LC1: 00000000

B0 : 00000000    L0 : 00000000    M0 : 00000000    I0 : 031f542c

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 031f5200

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000

A0.w: 02bd1e00   A0.x: 00000000   A1.w: 00001cac   A1.x: 00000000

USP : 001fe000  ASTAT: 02002002

 

Hardware Trace:

   0 Target : <0x000045a4> { _trap_c + 0x0 }

     Source : <0xffa00780> { _exception_to_level5 + 0x9c }

   1 Target : <0xffa006e4> { _exception_to_level5 + 0x0 }

     Source : <0xffa0063a> { _ex_trap_c + 0x72 }

   2 Target : <0xffa005c8> { _ex_trap_c + 0x0 }

     Source : <0xffa00808> { _trap + 0x28 }

   3 Target : <0xffa007e0> { _trap + 0x0 }

     Source : <0x00154f52> { _ieee80211_wep_encrypt_data + 0x3a }

   4 Target : <0x00154f4a> { _ieee80211_wep_encrypt_data + 0x32 }

     Source : <0x000a1d52> { _crc32_le + 0x42 }

   5 Target : <0x000a1d28> { _crc32_le + 0x18 }

     Source : <0x000a1dac> { _crc32_le + 0x9c }

   6 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

   7 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

   8 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

   9 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

  10 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

  11 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

  12 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

  13 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

  14 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

  15 Target : <0x000a1d68> { _crc32_le + 0x58 }

     Source : <0x000a1da2> { _crc32_le + 0x92 }

Stack from 001fd984:

        00000000 ffa00784 ffa00cc4 00000000 0000ffff 00000000 00000000 00000000

        00000480 0000c030 00062024 00000000 001fda80 00000480 00154f54 00154f4a

        ba8c75dd 02002002 000a1d4a ffa016b4 000a1d3a ffa016b2 00000000 00000000

        00001cac 00000000 02bd1e00 00000000 00000000 00000000 00000000 00000000

        00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

        00000000 00000000 031f5200 031f542c 001fe000 00000063 03b9bde0 00000008

 

Call Trace:

[<0000a4b2>] _enqueue_entity+0x26/0x4c

[<001550b0>] _ieee80211_wep_encrypt+0xc8/0x120

[<0015fac4>] ___ieee80211_tx_prepare+0x64/0x320

[<0015514c>] _wep_encrypt_skb+0x44/0x4c

[<0000df70>] ___printk_ratelimit+0x64/0xc4

[<00015432>] _account_process_tick+0x2a/0x38

[<0015fff6>] _ieee80211_master_start_xmit+0x102/0x3ec

[<001551aa>] _ieee80211_crypto_wep_encrypt+0x56/0x98

[<0015fff6>] _ieee80211_master_start_xmit+0x102/0x3ec

[<0010e5fc>] _dev_hard_start_xmit+0x18c/0x1cc

[<0000df70>] ___printk_ratelimit+0x64/0xc4

[<00119496>] ___qdisc_run+0x4e/0x154

[<0010952c>] _pskb_expand_head+0x38/0x174

[<001106b0>] _dev_queue_xmit+0x19c/0x1e8

[<00161304>] _ieee80211_subif_start_xmit+0x160/0x49c

[<00161402>] _ieee80211_subif_start_xmit+0x25e/0x49c

[<0000971d>] ___wake_up_common+0x25/0x5c

[<0010e5fc>] _dev_hard_start_xmit+0x18c/0x1cc

[<0000df70>] ___printk_ratelimit+0x64/0xc4

[<00211026>] _init_ext2_fs+0x26/0x64

[<00119496>] ___qdisc_run+0x4e/0x154

[<00118ae4>] _eth_header_cache_update+0x0/0xc

[<001150d0>] _neigh_resolve_output+0xb8/0x224

[<001106b0>] _dev_queue_xmit+0x19c/0x1e8

[<00118ae4>] _eth_header_cache_update+0x0/0xc

[<00113942>] _neigh_update+0x1ba/0x2f8

[<00113942>] _neigh_update+0x1ba/0x2f8

[<0013e828>] _arp_process+0x258/0x5bc

[<00211034>] _init_ext2_fs+0x34/0x64

[<0000def7>] _printk+0x3/0x18

[<0021103c>] _init_ext2_fs+0x3c/0x64

[<00002418>] _do_rt_sigreturn+0x1c/0x854

[<0021101a>] _init_ext2_fs+0x1a/0x64

[<0021101a>] _init_ext2_fs+0x1a/0x64

[<00004208>] _dump_bfin_mem+0x98/0x18c

[<0010e0aa>] _netif_receive_skb+0x18a/0x1f8

[<0010fff0>] _process_backlog+0x6c/0x128

[<0000df70>] ___printk_ratelimit+0x64/0xc4

[<0010fb70>] _net_rx_action+0x88/0x174

[<0000df70>] ___printk_ratelimit+0x64/0xc4

[<00012088>] ___do_softirq+0x60/0xac

[<00001d00>] _arch_ptrace+0x280/0x494

[<00002000>] _get_sclk+0x10/0x58

[<00001cac>] _arch_ptrace+0x22c/0x494

[<001fe000>] __edata+0x0/0x174

[<0000ffff>] _do_wait+0x75b/0xa08

[<0000ffff>] _do_wait+0x75b/0xa08

[<001fea5a>] _start_kernel+0x20e/0x260

[<001fe2dc>] _unknown_bootoption+0x0/0x220

[<001fe000>] __edata+0x0/0x174

[<001fe1c4>] _real_start+0x50/0x94

 

Modules linked in: rtl8187 pehci hal_pxa bf537_trackball gpio_keys

Kernel panic - not syncing: Kernel exception

 

 

QuoteReplyEditDelete

 

 

2008-11-07 06:36:13     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Michael Hennerich (GERMANY)

Message: 64825   

 

Which driver are you using?

 

The old pehci or the new mainlined isp1760-hcd?

 

-Michael

QuoteReplyEditDelete

 

 

2008-11-07 08:00:20     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Ivan Kuten (BELARUS)

Message: 64833   

 

Hello,

 

 

 

i'm using pehci from uClinux-dist-2008R1-RC8.

 

Does new svn trunk drivers/usb/host/isp1760-hcd.c has fixes for unaligned access?

 

 

 

Regards,

 

Ivan

 

 

QuoteReplyEditDelete

 

 

2008-11-07 08:29:53     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Michael Hennerich (GERMANY)

Message: 64836   

 

I don’t think your unaligned issue is anyhow USB driver related.

It appears to be a bug in Linux common net code (/net/mac80211/tkip.c).

 

Comparing our 2008R-1 kernel with the latest trunk (Linux-2.6.28) I see that someone fixed various unaligned issues.

http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc2/2.6.26-rc2-mm1/broken-out/mac80211-tkipc-use-kernel-provided-infrastructure.patch

 

 

Can you try our trunk kernel?

 

Regards,

Michael

 

QuoteReplyEditDelete

 

 

2008-11-07 09:21:07     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Ivan Kuten (BELARUS)

Message: 64839   

 

Trunk Kernel r5588 behaves a little different (modprobe rtl8187 is unsuccessful):

 

Linux version 2.6.28-rc2-ADI-2009R1-pre (vano@rebel) (gcc version 4.1.2 (ADI svn)) #9 Fri Nov 7 16:10:23 EET 8

Board Memory: 32MB

Kernel Managed Memory: 32MB

Memory map:

  fixedcode = 0x00000400-0x00000490

  text      = 0x00001000-0x00175450

  rodata    = 0x00175460-0x001f3bb4

  bss       = 0x001f3bc0-0x00209160

  data      = 0x00209160-0x00224000

    stack   = 0x00222000-0x00224000

  init      = 0x00224000-0x004ab000

  available = 0x004ab000-0x01dff000

  DMA Zone  = 0x01e00000-0x02000000

Hardware Trace Active and Enabled

Recovering from Watchdog event

Blackfin support (C) 2004-2008 Analog Devices, Inc.

Compiled for ADSP-BF537 Rev 0.3

Blackfin Linux support by http://blackfin.uclinux.org/

Processor Speed: 525 MHz core clock and 105 MHz System Clock                                                

 

....

 

isp1760-hcd isp1760-hcd.0: NXP ISP1760 USB Host Controller

drivers/usb/core/inode.c: creating file 'devices'

drivers/usb/core/inode.c: creating file '001'

isp1760-hcd isp1760-hcd.0: new USB bus registered, assigned bus number 1

isp1760-hcd isp1760-hcd.0: bus width: 16, oc: digital

isp1760-hcd isp1760-hcd.0: irq 74, io mem 0x20000000

isp1760-hcd isp1760-hcd.0: USB ISP 1761 HW rev. 1 started

usb usb1: default language 0x0409

usb usb1: uevent

usb usb1: usb_probe_device

usb usb1: configuration #1 chosen from 1 choice

usb usb1: adding 1-0:1.0 (config #1, interface 0)

usb 1-0:1.0: uevent

hub 1-0:1.0: usb_probe_interface

hub 1-0:1.0: usb_probe_interface - got id

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

hub 1-0:1.0: standalone hub

hub 1-0:1.0: individual port power switching

hub 1-0:1.0: individual port over-current protection

hub 1-0:1.0: power on to power good time: 20ms

hub 1-0:1.0: local power source is good

hub 1-0:1.0: enabling power on all ports

drivers/usb/core/inode.c: creating file '001'

usb usb1: New USB device found, idVendor=1d6b, idProduct=0002

usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

usb usb1: Product: NXP ISP1760 USB Host Controller

usb usb1: Manufacturer: Linux 2.6.28-rc2-ADI-2009R1-pre isp1760-hcd

usb usb1: SerialNumber: isp1760-hcd.0

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.                                                                        

 

...

 

hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000

hub 1-0:1.0: port 1, status 0501, change 0000, 480 Mb/s

port 1 high speed

usb 1-1: new high speed USB device using isp1760-hcd and address 2

port 1 high speed

usb 1-1: default language 0x0409

usb 1-1: uevent

usb 1-1: usb_probe_device

usb 1-1: configuration #1 chosen from 1 choice

usb 1-1: adding 1-1:1.0 (config #1, interface 0)

usb 1-1:1.0: uevent

hub 1-1:1.0: usb_probe_interface

hub 1-1:1.0: usb_probe_interface - got id

hub 1-1:1.0: USB hub found

hub 1-1:1.0: 3 ports detected

hub 1-1:1.0: standalone hub

hub 1-1:1.0: individual port power switching

hub 1-1:1.0: individual port over-current protection

hub 1-1:1.0: Single TT

hub 1-1:1.0: TT requires at most 16 FS bit times (1332 ns)

hub 1-1:1.0: Port indicators are supported

hub 1-1:1.0: power on to power good time: 100ms

hub 1-1:1.0: local power source is good

hub 1-1:1.0: enabling power on all ports

drivers/usb/core/inode.c: creating file '002'

usb 1-1: New USB device found, idVendor=0471, idProduct=3526

usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0

usb 1-1: Product: ISP1520

usb 1-1: Manufacturer: Philips Semiconductors

hub 1-1:1.0: port 1: status 0101 change 0001

hub 1-1:1.0: state 7 ports 3 chg 0002 evt 0000

hub 1-1:1.0: port 1, status 0101, change 0000, 12 Mb/s

usb 1-1.1: new high speed USB device using isp1760-hcd and address 3

usb 1-1.1: default language 0x0409

usb 1-1.1: uevent

usb 1-1.1: usb_probe_device

usb 1-1.1: configuration #1 chosen from 1 choice

usb 1-1.1: adding 1-1.1:1.0 (config #1, interface 0)

usb 1-1.1:1.0: uevent

drivers/usb/core/inode.c: creating file '003'

usb 1-1.1: New USB device found, idVendor=13d1, idProduct=abe6

usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

usb 1-1.1: Product: RTL8187_Wireless

usb 1-1.1: Manufacturer: Manufacturer_Realtek_RTL8187_

usb 1-1.1: SerialNumber: 00120E99B89C

hub 1-1:1.0: state 7 ports 3 chg 0000 evt 0002                                                              

 

root:/> iwconfig

lo        no wireless extensions.

 

eth0      no wireless extensions.

 

root:/>

root:/> modprobe rtl8187

Data access misaligned address violation

- Attempted misaligned data memory or data cache access.

Kernel OOPS in progress

Deferred Exception context

 

No Valid process in current context

return address: [0x000e2a02]; contents of:

0x000e29e0:  0010  0000  3211  a0f1  0e19  320a  1807  0000

0x000e29f0:  67e1  9010  0e19  9208  17fc  0c01  1805  0000

0x000e2a00:  0000 [9110] 9308  0010  05e4  0167  6fa6  e14d

0x000e2a10:  0020  e146  1062  3221  ce82  c802  a375  0000

 

SEQUENCER STATUS:               Not tainted

SEQSTAT: 00060024  IPEND: 9030  SYSCFG: 0006

  EXCAUSE   : 0x24

  physical IVG12 asserted : <0xffa00e14> { _evt_evt12 + 0x0 }

  physical IVG15 asserted : <0xffa00e2c> { _evt_system_call + 0x0 }

  logical irq   6 mapped  : <0xffa00390> { _timer_interrupt + 0x0 }

  logical irq  10 mapped  : <0x000f0f60> { _bfin_rtc_interrupt + 0x0 }

  logical irq  18 mapped  : <0x000b98d0> { _bfin_serial_dma_rx_int + 0x0 }

  logical irq  19 mapped  : <0x000b9654> { _bfin_serial_dma_tx_int + 0x0 }

  logical irq  20 mapped  : <0x000b98d0> { _bfin_serial_dma_rx_int + 0x0 }

  logical irq  21 mapped  : <0x000b9654> { _bfin_serial_dma_tx_int + 0x0 }

  logical irq  24 mapped  : <0x000c1ac0> { _bfin_mac_interrupt + 0x0 }

  logical irq  54 mapped  : <0x01a93064> { :gpio_keys:_init_module + 0x179e104 }

  logical irq  55 mapped  : <0x01a93064> { :gpio_keys:_init_module + 0x179e104 }

  logical irq  56 mapped  : <0x01a93064> { :gpio_keys:_init_module + 0x179e104 }

  logical irq  57 mapped  : <0x01a93064> { :gpio_keys:_init_module + 0x179e104 }

  logical irq  58 mapped  : <0x01a93064> { :gpio_keys:_init_module + 0x179e104 }

  logical irq  59 mapped  : <0x01a93064> { :gpio_keys:_init_module + 0x179e104 }

  logical irq  74 mapped  : <0x000d86f4> { _usb_hcd_irq + 0x0 }

  logical irq  78 mapped  : <0x01a93064> { :gpio_keys:_init_module + 0x179e104 }

RETE: <0x00000000> { _do_one_initcall + 0xfffff000 }

RETN: <0x00223ccc> /* kernel dynamic memory */

RETX: <0x00000480> /* Maybe fixed code section */

RETS: <0x000e2b50> { _enqueue_one_qtd + 0x38 }

PC  : <0x000e2a02> { _priv_write_copy + 0x1e }

DCPLB_FAULT_ADDR: <0x20001100> /* kernel dynamic memory */

ICPLB_FAULT_ADDR: <0x0000001f> /* Maybe null pointer? */

 

PROCESSOR STATE:

R0 : 01dc20bc    R1 : 00000001    R2 : 20001100    R3 : 00000001

R4 : 019d20e0    R5 : 00223cf8    R6 : 00001100    R7 : 00000008

P0 : 00001100    P1 : 20001100    P2 : 01d23bbf    P3 : 002e71e0

P4 : 00000003    P5 : 01dc20bc    FP : fffffff8    SP : 00223bf0

LB0: ffa016a8    LT0: ffa016a6    LC0: 00000000

LB1: 000e34ee    LT1: 000e34e0    LC1: 00000037

B0 : 00000000    L0 : 00000000    M0 : 00000000    I0 : 01b77408

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 00000000

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : fffefb02

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000

A0.w: 001470a3   A0.x: 00000000   A1.w: 00000685   A1.x: 00000000

USP : 00224000  ASTAT: 02003004

 

Hardware Trace:

   0 Target : <0x00004900> { _trap_c + 0x0 }

     Source : <0xffa00798> { _exception_to_level5 + 0x9c } CALL pcrel

   1 Target : <0xffa006fc> { _exception_to_level5 + 0x0 }

     Source : <0xffa0058a> { _bfin_return_from_exception + 0x6 } RTX

   2 Target : <0xffa00584> { _bfin_return_from_exception + 0x0 }

     Source : <0xffa00654> { _ex_trap_c + 0x6c } 0x0046

   3 Target : <0xffa005e8> { _ex_trap_c + 0x0 }

     Source : <0xffa00820> { _trap + 0x28 } JUMP (P4)

   4 Target : <0xffa007f8> { _trap + 0x0 }

     Source : <0x000e2a00> { _priv_write_copy + 0x1c } 0x0000

   5 Target : <0x000e29fa> { _priv_write_copy + 0x16 }

     Source : <0x000e29ec> { _priv_write_copy + 0x8 } IF !CC JUMP

   6 Target : <0x000e29e4> { _priv_write_copy + 0x0 }

     Source : <0x000e2b4c> { _enqueue_one_qtd + 0x34 } CALL pcrel

   7 Target : <0x000e2b18> { _enqueue_one_qtd + 0x0 }

     Source : <0x000e3782> { _enqueue_an_ATL_packet + 0xb2 } CALL pcrel

   8 Target : <0x000e377c> { _enqueue_an_ATL_packet + 0xac }

     Source : <0x000e2a06> { _priv_write_copy + 0x22 } RTS

   9 Target : <0x000e2a06> { _priv_write_copy + 0x22 }

     Source : <0x000e29fc> { _priv_write_copy + 0x18 } IF !CC JUMP

  10 Target : <0x000e29f0> { _priv_write_copy + 0xc }

     Source : <0x000e29f8> { _priv_write_copy + 0x14 } IF CC JUMP

  11 Target : <0x000e29f0> { _priv_write_copy + 0xc }

     Source : <0x000e29f8> { _priv_write_copy + 0x14 } IF CC JUMP

  12 Target : <0x000e29f0> { _priv_write_copy + 0xc }

     Source : <0x000e29f8> { _priv_write_copy + 0x14 } IF CC JUMP

  13 Target : <0x000e29f0> { _priv_write_copy + 0xc }

     Source : <0x000e29f8> { _priv_write_copy + 0x14 } IF CC JUMP

  14 Target : <0x000e29f0> { _priv_write_copy + 0xc }

     Source : <0x000e29f8> { _priv_write_copy + 0x14 } IF CC JUMP

  15 Target : <0x000e29f0> { _priv_write_copy + 0xc }

     Source : <0x000e29f8> { _priv_write_copy + 0x14 } IF CC JUMP

 

Kernel Stack

Stack info:

SP: [0x00223f58] <0x00223f58> /* kernel dynamic memory */

Memory from 0x00223f50 to 00224000

00223f50: 0000ffff  ffa00a1c [00000006] 002092dc  01dab060  01a941e0  00223f90 <ffa013fc>

00223f70: 01a941e0  002092dc  01a941e0  0020a67c  00222000  ffa00a1c  00222000  00222000

00223f90: 0020a67c  ffa0024a  ffa0025c  00222000  001f4464  001f3bc4  00000000  00000000

00223fb0: 00000000  00000000  00000000  00000000  002246be  001fec64  0023db74  001f3bd0

00223fd0: 00000000  0023db74  001f37f4  00000030  002240a8  0023fbc0  00224000  0023223e

00223ff0: 00000000  00000000  00000000  ffb00000  464c457f

Return addresses in stack:

    address : <0xffa013fc> { _schedule + 0x184 }

Modules linked in: rtl8187(+) gpio_keys

Kernel panic - not syncing: Kernel exception                                                                

 

----------------

 

Should I try to rebuild it with svn toolchain?

 

Regards,

 

Ivan

 

 

 

 

QuoteReplyEditDelete

 

 

2008-11-07 09:42:20     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Michael Hennerich (GERMANY)

Message: 64840   

 

Well – now you’re hitting a different unaligned problem in the new ISP1760-hcd driver.

(this is why I was asking in the first place)

(priv_read/write_copy) I told Sebastian Andrzej Siewior author of the driver about this problem earlier today.

 

I currently don’t have time to fix this – but you can try it your own if you like.

Compare the old pehci IO read/write functions with the new ones priv_read/write_copy

 

isp1761_mem_read(struct isp1761_dev *dev, __u32 start_add,

__u32 end_add, __u32 * buffer, __u32 length, __u16 dir)

 

isp1761_mem_write(struct isp1761_dev *dev,

__u32 start_add, __u32 end_add,

__u32 *buffer, __u32 length,

__u16 dir)

 

Implement unaligned handling.

 

If you’re going to fix this please submit a patch.

 

 

Regards,

Michael

 

QuoteReplyEditDelete

 

 

2008-11-09 07:21:27     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Ivan Kuten (BELARUS)

Message: 64889   

 

I put some debug in priv_write_copy:

 

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 8

priv_write_copy: len 32

priv_write_copy: len 32

usb 1-1.1: configuration #1 chosen from 1 choice

priv_write_copy: len 32

priv_write_copy: len 8

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 8

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 8

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 8

priv_write_copy: len 32

priv_write_copy: len 1

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 8

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 32

priv_write_copy: len 8

priv_write_copy: len 32

priv_write_copy: len 1

Data access misaligned address violation

- Attempted misaligned data memory or data cache access.

Kernel OOPS in progress

 

QuoteReplyEditDelete

 

 

2008-11-09 07:26:28     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Ivan Kuten (BELARUS)

Message: 64890   

 

And added in isp1760-hcd.c single byte copying via __raw_writeb:

 

static void priv_write_copy(const struct isp1760_hcd *priv, const u32 *src,

        __u32 __iomem *dst, u32 len)

{

//  printk(KERN_WARNING "len %d\n", len);

    while (len >= 4) {

        __raw_writel(*src, dst);

        len -= 4;

        src++;

        dst++;

    }

 

    if (!len)

        return;

    /* in case we have 3, 2 or 1 by left. The buffer is allocated and the

     * extra bytes should not be read by the HW

     */

    if (len==1) {

//      printk(KERN_WARNING "%s: perform align hack\n", __FUNCTION__);

        __raw_writeb(*src, dst);

    } else

        __raw_writel(*src, dst);

}

 

 

This helped to modprobe rtl8187 successfully,

 

but it fails on further step: ifconfig wlan0 up

 

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

Reloading ptd 01b041e0/01a3b6e0... qh 01b05368 readed: 0 of 2500 done: 00020000 cur: 00010000

 

 

Best regards,

 

Ivan

 

 

QuoteReplyEditDelete

 

 

2008-11-10 05:46:18     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Michael Hennerich (GERMANY)

Message: 64920   

 

I checked in a temporary fix -

 

can you do a SVN update on trunk and then try again.

 

-Michael

 

fix-unaligned-exceptions-in-isp1760-hcd.patch

QuoteReplyEditDelete

 

 

2008-11-10 16:45:08     Re: Data access misaligned address violation with USB WiFi (isp1760 and rtl8187)

Ivan Kuten (BELARUS)

Message: 64972   

 

I updated to r5620,

 

Your patch does not hurt on modprobe rtl8187 but not helped on ifconfig wlan0.

 

I still getting those reloading ptd messages.

 

btw USB Flash stick is working fine.

 

I will come up with more debug soon

 

Regards,

 

Ivan

Outcomes