Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Sep 2003 03:30:03 -0700 (PDT)
From:      Bruce Evans <bde@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/i386/isa cy.c
Message-ID:  <200309271030.h8RAU3Jb016193@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
bde         2003/09/27 03:30:03 PDT

  FreeBSD src repository

  Modified files:
    sys/i386/isa         cy.c 
  Log:
  Quick fix for bitrot in locking in the SMP case.  cd_getreg() and
  cd_setreg() were still using !(read_eflags() & PSL_I) as the condition
  for the lock hidden by COM_LOCK() (if any) being held.  This worked
  when spin mutexes and/or critical_enter() used hard interrupt disablement,
  but it has caused recursion on the non-recursive mutex com_mtx since
  all relevant interrupt disablement became soft.  The recursion is
  harmless unless there are other bugs, but it breaks an invariant so
  it is fatal if spinlocks are witnessed.
  
  Revision  Changes    Path
  1.133     +24 -4     src/sys/i386/isa/cy.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200309271030.h8RAU3Jb016193>