local_irq_restore(flags);
cris_atomic_restore(sem, flags);
extern inline int down_interruptible(struct semaphore * sem){	unsigned long flags;	int failed;	might_sleep();	/* atomically decrement the semaphores count, and if its negative, we wait */	local_save_flags(flags);	local_irq_disable();	failed = --(sem->count.counter) < 0;	local_irq_restore(flags);	if(failed)		failed = __down_interruptible(sem);	return(failed);}