Luigi Rizzo 560a65051c Rename IWI_LOCK_ASSERT to IWI_LOCK_CHECK per Sam's suggestion,
and make it print under debug.iwi control same as other debugging stuff.

Remove the device_printf() in iwi_ioctl() and replace with this:

        /*
         * wait until pending iwi_cmd() are completed, to avoid races
         * that could cause problems.
         */
        while (sc->flags & IWI_FLAG_BUSY)
                msleep(sc, &sc->sc_mtx, 0, "iwiioctl", hz);

This at least prevents what has become an almost systematic failure for my
system, presumably due to a previous iwi_cmd() not complete yet by the
time iwi_ioctl() is called.

It has been pointed to my attention that the real problem could be
calling ieee80211_ioctl() with the lock held. If that is true,
there might still be a possibility for a race condition e.g. an
interrupt coming while the ioctl is sleeping.
Need to investigate further on what changes are required to release
the lock before calling ieee80211_ioctl
2007-02-20 17:32:30 +00:00
..
2006-11-30 15:14:17 +00:00
2006-06-11 22:25:01 +00:00
2006-06-12 04:30:42 +00:00
2006-12-29 16:38:22 +00:00
2006-12-01 20:29:55 +00:00
2006-11-29 08:05:55 +00:00
2007-01-09 04:26:51 +00:00
2006-12-28 00:05:40 +00:00
2006-12-05 06:19:36 +00:00
2007-02-14 18:21:32 +00:00
2007-02-15 06:21:34 +00:00
2006-12-29 16:38:22 +00:00
2006-07-14 04:36:57 +00:00
2006-11-27 04:47:27 +00:00
2006-11-06 17:43:10 +00:00
2007-02-16 05:36:59 +00:00
2006-05-16 15:23:27 +00:00
2006-09-15 11:01:23 +00:00
2006-07-14 04:35:59 +00:00
2006-09-15 11:01:23 +00:00