디바이스 드라이버 작성시...?

kkojiband의 이미지

interruptible_sleep_on 과 wake_up_interruptible 을 사용하려고 하는데요,

제대로 동작하는지 확인하기 위해 read 파일과 write 파일을 만들었습니다...

근데 이상한게 read 한 후에 블럭 되고 나서 write 를 하면 read 가 깨어나질 않습니다...

더 이상한건 write 를 실행시키고, read 를 실행 시킨 후에 write 에다가 임의의 문자열을 입력을 해서 보내면 read 가 깨어납니다...

대체 왜 이럴까요?

open 에서 wait_queue_head_t 는 초기화 시켜줬습니다...

참고로 커널 2.4.20 를 사용하고 있습니다...

고수님들 도와주세요~

yeppiguy의 이미지

님 글로만으로 상황이 좀 정확하지 않네요....
block device인지 char device인지도 분명치 않고,
....
아무튼, dead-lock이 발생한거 같은데,
두번째 경우에 대해서 read와 write가 실행이 될때, 리턴값을 확인해보세요...
정상적인 return 인지 아닌지...확인해 보시는게 좋을거 같네요....

kkojiband의 이미지

문제 해결했습니다~

제가 바보였습니다...--;;;

wait queue 초기화를 open 에서 해놨었습니다...

후...이거때문에 3일을 고생을 하다니...-_-;

암튼 위에 신경써주신 분 감사드립니다~ 꾸벅~!

이제 졸업이다...사랑하는 SKKULUG 후배들아 안녕~