Messages in this thread |  | | Date | Mon, 29 Apr 1996 21:10:00 -0400 | From | "David S. Miller" <> | Subject | Re: 1.3.94 Ooops For Sale... |
| |
From: "A.N.Kuznetsov" <kuznet@ms2.inr.ac.ru> Date: Mon, 29 Apr 1996 19:16:57 +0400 (MSD)
The first problem is in wrong kerneld interface. kerneld_send decides whether call should be atomic or not on the base of intr_count. arp.c (and, possibly another calls of kerneld. Bjorn, please check it!) assumes, that it DOES NOT SLEEP! Workaround: intr_count++ ... intr_count-- around kerneld_send
Ick... why not have a seperate kernel thread do all this stuff that can sleep. Take a look at arch/sparc/mm/asyncd.c for an easy and efficient method to get things done out of intterupt context in the kernel.
Later, David S. Miller davem@caip.rutgers.edu
|  |