If the source code can be pasted here, we will have more clues.
Tom Chen:
Hello,
A crash happened when our driver when calling ddi_dma_mem_free to free dma
access handle. I had added some debug code in the driver to print the handles
when they are allocated and when they are freed. Now I am able to verify that
the handles are valid and what is being freed is the same address that was
allocated; the driver is not corrupting the handles.
Our driver runs on a Sparc server with OpenSolaris nv107. Here is the crash dump, can someone shed some lights why crash happened and how we should debug further?
Many thanks!
Tom
panic[cpu1]/thread=300126a4500:
vmem_hash_delete(3000002e000, 66006e6574706572, 7349995973892924786): bad free
000002a10281e680 genunix:vmem_hash_delete+c8 (3000002e000, 66006e6574706572, 660
06e6574706572, 3014af01290, d, 66039e68e79c08f5)
%l0-3: 000003014af00000 0000000000001290 0000000000000252 66039e8267b7a252
%l4-7: 0000000000001fff 66039e8267b7a252 0000000000000000 0000000000000000
000002a10281e730 genunix:vmem_xfree+1c (3000002e020, 66006e6574706572, 66006e657
4706572, 3000002e000, 66006e6574706571, 0)
%l0-3: 0000000000000000 00000000000001fd 00000000000001fe 0000000000000000
%l4-7: 0000000000001fff 00000000c22a0000 0000000000000000 0000000000000000
000002a10281e7e0 genunix:ddi_dma_mem_free+14 (30a07d33370, 3000, 3001a44d540, 34
11, c300e, 1870c00)
%l0-3: 0000000000000035 000002a10281e7c0 0000000000000000 0000000000000000
%l4-7: 0000000000000010 0000000000000000 0000000000000000 000000000191c000
000002a10281e890 qlge:ql_free_phys+1c (30a07d33368, 30a07d33370, 8, 2, 20, 186e5
d4)
%l0-3: 000003000004ccf0 0000000000000030 0000000000000004 000000000186e60c
%l4-7: 000000000186e400 0000000000000014 000000000186e5e4 000000000186e400
000002a10281e940 qlge:ql_free_tx_resources+98 (30a07d33280, 3097c96ee48, 0, 0, 1
b18, 0)
%l0-3: 0000000000000010 0000000000000010 0000030a07d33338 0000060010a69ac0
%l4-7: 0000000000000007 000000007b73d800 0000000000000010 0000000000001b18
000002a10281e9f0 qlge:ql_free_mem_resources+80 (3097c95a000, 3097c96ee48, 15e68,
4c0, 3, 60011508900)
%l0-3: 000000000003efff 000000000003ffff 00000000ffffefff 00000000ffffec00
%l4-7: 0000000000001478 0000000000000001 0000000000015c00 0000000000014e48
000002a10281eaa0 qlge:ql_do_stop+40 (3097c95a000, 0, 0, 3, 701d7528, 0)
%l0-3: 000003000531ca30 000003001bd04960 000003000531ca80 0000000000000000
%l4-7: 0000000000001508 0000000000000000 000000000003efff 000003000cb12800
000002a10281eb50 mac:mac_unicast_remove+2e8 (60010b92bc8, 3002d098180, 604, 0, 6
04, 30004ea6a10)
%l0-3: 0000060010501ad0 ffffffffffffffff 000000007beb3254 000003000cb13c70
%l4-7: 000000007beb3000 0000000000000080 000000007bea2800 0000000000000000
000002a10281ec00 dls:dls_mac_active_clear+24 (60010b91688, 48, deadbeef00000000,
9, 60010b91688, 0)
%l0-3: 00000000f4eef4ee 00000000f4eef400 feedfacefeedface 0000000000000000
%l4-7: 00000000deadbeef feedface00000000 00000000feedf800 00000000018c6c00
000002a10281ecb0 dls:dls_active_clear+14 (60010c27868, 300126a4500, 20f, 220, 22
0, 1)
--
Best Regards,
Ming.
------------------------------------------
-Edward Shu
-Solaris x86 Engineering, Sun Microsystems
-tele: +86-10-62673100
__________________________________________
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss