리눅스 임베디드 프로그래밍 중입니다.
create_singlethread_workqueue() 함수를 통해서
first_wq, second_wq 라는 workqueue 두개를 생성합니다.
그리고 각각의 workqueue 를 queue_delayed_work() 함수를 통해 동작시킵니다.
first_wq 와 second_wq 에서 동작하는 work 는 device 의 레지스터에 접근하는 작업입니다.
first_wq {
read(reg1)
read(reg2)
write(reg1)
write(reg2)
}
second_wq {
read(reg1)
read(reg2)
write(reg2)
}
제가 우려하는 부분은 first_wq 의 work 동작중에 schedule() 이 되어 read(reg2) 까지만 동작하고
정상적인 값을 write 하지 못한 채 second_wq 의 work 가 동작하는 상황입니다.