[KERNEL DEBUG]debug syscall异常问题,ioctl操作uart设备异常问题。

最近遇到在64bit kernel执行32bit的程序时,ioctl无法操作tty driver。问题是kernel中tty设备没有compat_ioctl回调导致的,最后自己修改uart_ops解决的问题。

在debug此问题时,需要在syscall中加入log,加入之后会导致log过多而影响观察,用如下方法,不打印除了uarttest程序的调用。

current表示当前进程的PCB,comm表示当前进程的名字。

除了debug外,我们还需补上兼容型的ioctl函数。

1. 补上结构体中的compat_ioctl.

 2.补上调用关系。

 3. driver中实现compat_ioctl函数。

4.在serial_core.c中补上回调函数。

原文地址:https://www.cnblogs.com/smilingsusu/p/12622791.html