local_save_flags(flags); local_irq_disable();
cris_atomic_save(sem, flags);
extern inline void up(struct semaphore * sem){  	unsigned long flags;	int wakeup;	/* atomically increment the semaphores count, and if it was negative, we wake people */	local_save_flags(flags);	local_irq_disable();	wakeup = ++(sem->count.counter) <= 0;	local_irq_restore(flags);	if(wakeup) {		__up(sem);	}}