Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/isa Use spin mutex to fix a panic



details:   https://anonhg.NetBSD.org/src/rev/0eabf0213cf7
branches:  trunk
changeset: 361340:0eabf0213cf7
user:      yamaguchi <yamaguchi%NetBSD.org@localhost>
date:      Wed Apr 25 08:29:45 2018 +0000

description:
Use spin mutex to fix a panic

The GPIO part of wbsio(4) has a lock to keep the register access
order. In addition to the lock, gpio(4) has a look to prevent
multiple control through gpio_pin_ctl(). Those locks hold at
once when gpio_pin_ctl() is called, and the lock of gpio(4) hold
before that of wbsio(4).

Therefore, the wbsio(4) has to use spin lock if gpio(4) uses
spin lock.

diffstat:

 sys/dev/isa/wbsio.c |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (18 lines):

diff -r 48393a344e0a -r 0eabf0213cf7 sys/dev/isa/wbsio.c
--- a/sys/dev/isa/wbsio.c       Wed Apr 25 03:49:57 2018 +0000
+++ b/sys/dev/isa/wbsio.c       Wed Apr 25 08:29:45 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: wbsio.c,v 1.23 2018/03/07 09:25:56 msaitoh Exp $       */
+/*     $NetBSD: wbsio.c,v 1.24 2018/04/25 08:29:45 yamaguchi Exp $     */
 /*     $OpenBSD: wbsio.c,v 1.10 2015/03/14 03:38:47 jsg Exp $  */
 /*
  * Copyright (c) 2008 Mark Kettenis <kettenis%openbsd.org@localhost>
@@ -547,7 +547,7 @@
        aprint_normal_dev(sc->sc_dev, "GPIO: port 0x%x-0x%x\n",
            iobase, iobase + WBSIO_GPIO_IOSIZE);
 
-       mutex_init(&sc->sc_gpio_lock, MUTEX_DEFAULT, IPL_NONE);
+       mutex_init(&sc->sc_gpio_lock, MUTEX_DEFAULT, IPL_VM);
 
        return 0;
 }



Home | Main Index | Thread Index | Old Index