mmap을 이용해서 드바이스 드라이버와 App간 데이터를 주고 받으려고 합니다.
App 및 드라이버 측에 해당 코딩을 하고 테스트 해봤는데
App(혹은 드라이버)측에서 데이터 변경을 하고 드라이버(혹은 App)에서 읽어보면 읽어서 참조하는 쪽에는 새로운 데이터로 변경이 되어있지 않고 이전 값이 그대로 유지되어 있네요.

커널은 2.6.16을 사용하고 있고
App에서 mmap 설정시
if ((Buffer = (char *) mmap(0,(NPAGES ) * PAGE_SIZE, flag, MAP_SHARED | MAP_LOCKED, fd, 0)) == -1)
{
...
}
와 같이 했고
드라이버 측에서는
if ((kmalloc_area = kmalloc((NPAGES ) * PAGE_SIZE, GFP_ATOMIC | GFP_DMA )) == NULL) printk("kmalloc failed\n");
와 같이 메모리 할당한 후

매핑 함수에서
        if ((ret = remap_pfn_range(vma,
                                   vma->vm_start,
                                   virt_to_phys((void *)Buffer) >> PAGE_SHIFT,
                                   length,
                                   vma->vm_page_prot)) < 0) {
                return ret;
        }
와 같이 했습니다.

데이터의 업데이트가 매번 안돼는 것이 아니라 간혹 나타납니다.
현재 제가 App측에서 데이터를 변경한후 약 130msec 정도의 시간이 경과하도록 하면 정상적으로 드라이브 쪽에 업데이트된 데이터가 전달되는 군요.