[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: down in comopen
これたぶん、sc = device_lookup(&com_cd, COMUNIT(dev));の部分で
com_cd.cd_devsの参照ですよね。
800241f0: 3c038028 lui v1,0x8028
800241f4: 8c638e90 lw v1,-29040(v1) com_cd.cd_devs
800241f8: 00021080 sll v0,v0,0x2
800241fc: 00431021 addu v0,v0,v1
80024200: 08009083 j 8002420c <comopen+0x78>
80024204: 8c500000 lw s0,0(v0)
intrcnt用の場所をとっておくのを忘れてました。intrcntの更新でcfdriverを
壊してたみたいです。
nm -nすると、
80278de0 D _fdata
80278de0 D audio_cd
80278de0 D eintrcnt
80278de0 D eintrnames
80278de0 D intrcnt
80278de0 D intrnames
80278df0 D ukphy_cd
80278e00 D aic_cd
80278e10 D an_cd
80278e20 D awi_cd
80278e30 D wi_cd
80278e40 D ep_cd
なので、このkernelの場合、audio_cdのcfdriverがintrcntの更新で壊されて
しまいます。
Index: locore_machdep.S
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/hpcmips/hpcmips/locore_machdep.S,v
retrieving revision 1.4
diff -u -r1.4 locore_machdep.S
--- locore_machdep.S 2002/01/31 16:27:35 1.4
+++ locore_machdep.S 2002/05/15 09:20:42
@@ -69,4 +69,5 @@
_C_LABEL(intrnames):
_C_LABEL(eintrnames):
_C_LABEL(intrcnt):
+ .word 0,0,0,0,0,0,0,0,0 /* SOFTCLOCK_INTR, SOFTNET_INTR, HARDCLOCK */
_C_LABEL(eintrcnt):
これで直ります?
---
UCHIYAMA Yasushi
uch@vnop.net