안녕하세요 인터럽트에 반응하면 파일시스템에 0 혹은 1에 Write 를 하려고 합니다.
근데 여기서 제가 테스트 하고 있는 과정은 /proc/ 파일시스템을 기준으로 테스트 하고 있습니다.
http://www.tldp.org/LDP/lkmpg/2.6/html/x769.html
여기 부분을 참조하여 만들었었는데
문제는 copy_from_user() 함수에서 에러가 날때가 있습니다.
그래서 전에
access_ok() 라는 함수로 체크를 해봤는데
같은 동일한 주소임에도 불구하고 access_ok() 함수에서 Fail 을 받는 경우가 있습니다.
버퍼도 const char* 쓰고 있어서 동일한 주소에 있는 값을 가져오는데
어떤 상황에서는 access_ok() 함수를 통과하고 copy_from_user() 가 잘 됩니다만
또 어떤 상황에서는 access_ok() 함수에서 에러를 반납합니다.
블규칙적인 현상이라 감을 못잡고 있습니다.
...
...
if (!access_ok(VERIFY_READ, buffer, buffer_size)) {
return -EFAULT;
}
if (copy_from_user(data, buffer, buffer_size)) {
return -EFAULT;
}
...
...
링크에 있는 소스와 거의 동일하게 구현했습니다.
이런 경험 혹시 해보신적 있으신가요?...
도움 좀 부탁드리겠습니다 ㅠㅠ
댓글 0
.