linux kernel 2.6.30.4 기준으로 drivers/net/ppp_asyn.c의 ppp_async_push() 함수를 보면 아래처럼 spin_lock_bh를 잡고 tty->ops->write(); 를 호출하는데 커널에 등록된 대부분의 tty 장치들의 write() 함수를 보면 안에서 mutex lock을 잡게 되어 있습니다. spin lock을 잡은 상태에서 mutex lock을 잡으려다 잡지 못해 schedule이 발생하는 경우에는 무조건 "BUG: scheduling while atomic" 패닉이 발생하는것 아닌가요? 제가 어떤 부분을 분명 잘못 이해하고 있는 것 같은데 그게 뭘까요? ^^;