kernels/linux-2.4.0/arch/arm/kernel/ecard.c
/*
 * Wake the expansion card daemon to action our request.
 *
 * FIXME: The test here is not sufficient to detect if the
 * kcardd is running.
 */
Wake the expansion card daemon to action our request.
FIXME: The test here is not sufficient to detect if the
kcardd is running.
Wake the expansion card daemon to action our request . FIXME : The test here is not sufficient to detect if the kcardd is running .
static inline void
ecard_call(struct ecard_request *req)
{
	if ((current == &init_task || in_interrupt()) &&
	    req->req == req_reset && req->ec == NULL) {
		ecard_init_task(1);
		ecard_task_reset(req);
	} else {
		if (ecard_pid <= 0)
			ecard_pid = kernel_thread(ecard_task, NULL,
					CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
		ecard_req = req;
		wake_up(&ecard_wait);
		sleep_on(&ecard_done);
	}
}
static inline void ecard_call ( struct ecard_request * req ) { if ( ( current == & init_task || in_interrupt ( ) ) && req -> req == req_reset && req -> ec == NULL ) { ecard_init_task ( 1 ) ; ecard_task_reset ( req ) ; } else { if ( ecard_pid <= 0 ) ecard_pid = kernel_thread ( ecard_task , NULL , CLONE_FS | CLONE_FILES | CLONE_SIGHAND ) ; ecard_req = req ; wake_up ( & ecard_wait ) ; sleep_on ( & ecard_done ) ; } }
Wake the expansion card daemon to action our request.
Wake the expansion card daemon to action our request .
/*
	 * If we're called from task 0, or from an
	 * interrupt (will be keyboard interrupt),
	 * we forcefully set up the memory map, and
	 * call the loader.  We can't schedule, or
	 * sleep for this call.
	 */