NetBSD-Bugs archive

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

Re: port-hpcmips/38139: hpcmips 4.99.55: mutex_vector_enter: locking against myself



The following reply was made to PR port-hpcmips/38139; it has been noted by 
GNATS.

From: Risto Sainio <sainio%t-online.de@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: port-hpcmips/38139: hpcmips 4.99.55: mutex_vector_enter: locking 
against myself
Date: Thu, 3 Apr 2008 21:46:25 +0200

 Thanks again
 
 I first reproduced the error, applied the patch, rebooted and tried to 
 reproduce the error again, but it did not occur. This is on tx3922-platform 
 and I did not test on VR-platform.
 
 
 regards
 
 Risto Sainio
 
 
 On Saturday 22 March 2008 19:10, Izumi Tsutsui wrote:
 > The following reply was made to PR port-hpcmips/38139; it has been noted by
 > GNATS.
 >
 > From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
 > To: gnats-bugs%NetBSD.org@localhost
 > Cc: port-hpcmips-maintainer%NetBSD.org@localhost, 
 > gnats-admin%NetBSD.org@localhost,
 >         netbsd-bugs%NetBSD.org@localhost, tsutsui%ceres.dti.ne.jp@localhost
 > Subject: Re: port-hpcmips/38139: hpcmips 4.99.55: mutex_vector_enter:
 > locking against myself
 > Date: Sun, 23 Mar 2008 03:04:57 +0900
 >
 >  > >Synopsis:       hpcmips 4.99.55: mutex_vector_enter: locking against
 >  > > myself
 >
 >  Try the attached patch.
 >  ---
 >  Izumi Tsutsui
 >
 >
 >  Index: hpcmips/interrupt.c
 >  ===================================================================
 >  RCS file: /cvsroot/src/sys/arch/hpcmips/hpcmips/interrupt.c,v
 >  retrieving revision 1.11
 >  diff -u -r1.11 interrupt.c
 >  --- hpcmips/interrupt.c     3 Dec 2007 15:33:43 -0000       1.11
 >  +++ hpcmips/interrupt.c     22 Mar 2008 17:58:15 -0000
 >  @@ -73,11 +73,7 @@
 >   void
 >   cpu_intr(u_int32_t status, u_int32_t cause, u_int32_t pc, u_int32_t
 > ipending) {
 >  -   struct cpu_info *ci;
 >
 >  -   ci = curcpu();
 >  -   ci->ci_idepth++;
 >      (*platform.cpu_intr)(status, cause, pc, ipending);
 >  -   ci->ci_idepth--;
 >   }
 >   #endif /* VR41XX && TX39XX */
 >  Index: tx/tx39icu.c
 >  ===================================================================
 >  RCS file: /cvsroot/src/sys/arch/hpcmips/tx/tx39icu.c,v
 >  retrieving revision 1.23
 >  diff -u -r1.23 tx39icu.c
 >  --- tx/tx39icu.c    3 Dec 2007 15:33:44 -0000       1.23
 >  +++ tx/tx39icu.c    22 Mar 2008 17:58:15 -0000
 >  @@ -315,9 +315,12 @@
 >   {
 >      struct tx39icu_softc *sc;
 >      tx_chipset_tag_t tc;
 >  +   struct cpu_info *ci;
 >      txreg_t reg, pend, *regs;
 >      int i, j;
 >
 >  +   ci = curcpu();
 >  +   ci->ci_idepth++;
 >      uvmexp.intrs++;
 >
 >   #ifdef __HAVE_FAST_SOFTINTS
 >  @@ -417,6 +420,9 @@
 >
 >   #ifdef __HAVE_FAST_SOFTINTS
 >    softintr:
 >  +#endif
 >  +   ci->ci_idepth--;
 >  +#ifdef __HAVE_FAST_SOFTINTS
 >      _splset((status & ~cause & MIPS_HARD_INT_MASK) | MIPS_SR_INT_IE);
 >      softintr(ipending);
 >   #endif
 >  Index: vr/vr.c
 >  ===================================================================
 >  RCS file: /cvsroot/src/sys/arch/hpcmips/vr/vr.c,v
 >  retrieving revision 1.50
 >  diff -u -r1.50 vr.c
 >  --- vr/vr.c 4 Jan 2008 22:13:57 -0000       1.50
 >  +++ vr/vr.c 22 Mar 2008 17:58:15 -0000
 >  @@ -532,6 +532,10 @@
 >   void
 >   VR_INTR(u_int32_t status, u_int32_t cause, u_int32_t pc, u_int32_t
 > ipending) {
 >  +   struct cpu_info *ci;
 >  +
 >  +   ci = curcpu();
 >  +   ci->ci_idepth++;
 >      uvmexp.intrs++;
 >
 >      /* Deal with unneded compare interrupts occasionally so that we can
 >  @@ -553,6 +557,7 @@
 >              _splset(MIPS_INT_MASK_1|MIPS_SR_INT_IE);
 >              (*vr_intr_handler[0])(vr_intr_arg[0], pc, status);
 >      }
 >  +   ci->ci_idepth--;
 >
 >   #ifdef __HAVE_FAST_SOFTINTS
 >      if (ipending & MIPS_SOFT_INT_MASK_1) {
 


Home | Main Index | Thread Index | Old Index