Still trying to figure out sema_down() issue