Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Feb 2006 21:59:29 +0000 (UTC)
From:      Maksim Yevmenkin <emax@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/kbdmux kbdmux.c
Message-ID:  <200602252159.k1PLxT8G036312@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
emax        2006-02-25 21:59:29 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/kbdmux       kbdmux.c 
  Log:
  Fix hard lockup caused by kbdmux(4) when kbdmux(4), PS/2 keyboard
  (atkbd(4)) and PS/2 mouse (psm(4)) are used together.
  
  Turns out that atkbd(4) check_char() method may return "true" while
  read_char() method returns NOKEY. When this happens kbdmux(4) was
  simply stuck in the dead loop. Avoid dead loop in kbdmux(4) by breaking
  out of the loop if read_char() method returns NOKEY.
  
  It almost seems like a bug in atkkbd(4), atkbd_check_char() calls
  kbdc_data_ready(), and, the later will return "true" if there are
  pending data in either kbd or aux queue. However, because both aux
  and kbd are on the same controller, I'm not sure if this is a bug
  or feature.
  
  Tested by:      markus
  MFC after:      1 day
  
  Revision  Changes    Path
  1.4       +1 -1      src/sys/dev/kbdmux/kbdmux.c



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