wake_up_interruptible changes

Richard B. Johnson (root@chaos.analogic.com)
Wed, 15 Dec 1999 15:59:07 -0500 (EST)


Current production code used to have

wake_up_interruptible(struct wait_queue **);

The new kernel now requires changes to

wake_up_interruptible(struct wait_queue_head *);

This breaks every Linux driver that implements poll/select, meaning
that once released, all such drivers will have to be rewritten, not
just compiled.

Is it possible that these kinds of changes could be implemented in
the future as MACROS so that one doesn't have to rewrite released
code?

The problem may not be evident to a lot of persons unless they
are trying to use Linux in a commercial environment. We have,
currently under development. a Medical Imaging System
(a CAT Scanner) with a main controller, the thing that does all the
sequencing, and control of the entire machine, written in the Linux
environment. This required drivers for all the non-standard
communications, control, and image processing hardware to be written for
Linux.

This machine, because it is used in medical applications, must
be certified by the FDA. By the time this machine is complete
and ready for certification, (in about 2 years) many new
versions of Linux will have been released. If anything having
to do with the basic control (read safety) is changed, the
machine must be re-certified. This means that we either use
a current standard "release" with all its bugs and old technology
and stick with it forever, or we attempt to keep the software up-to-date
so that, by the time the FDA certification occurs, we are able to use the
"latest" released kernel.

Changes to the names and types of kernel objects make this
hard to do.

Cheers,
Dick Johnson

Penguin : Linux version 2.3.13 on an i686 machine (400.59 BogoMips).
Warning : The end of the world as we know it requires a new calendar.
Seconds : 1411253 (until Y2K)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/