fix: 内核态在console初始化完成后,使用printf无法正常打印
printf实现流程上会调用cmd为TIOCGWINSZ的ioctl命令,该命令的实现 在console层ConsoleGetWinSize函数中,而此函数copy结果时使用函数 LOS_ArchCopyToUser,由于该过程在内核态,导致LOS_ArchCopyToUser失败, 从而引发printf无法正常打印的问题。 close: #I3UG00 Signed-off-by: zhangfanfan <zhangfanfan2@huawei.com> Change-Id: I3e85f682429cbe30842206842ddb2a8388ec8412
This commit is contained in:
parent
1a3f3f54e7
commit
44ce696904
|
@ -853,11 +853,10 @@ STATIC INT32 ConsoleGetWinSize(unsigned long arg)
|
||||||
.ws_row = DEFAULT_WINDOW_SIZE_ROW
|
.ws_row = DEFAULT_WINDOW_SIZE_ROW
|
||||||
};
|
};
|
||||||
|
|
||||||
if(LOS_ArchCopyToUser((VOID *)arg, &kws, sizeof(struct winsize)) != 0) {
|
if (LOS_CopyFromKernel((VOID *)arg, sizeof(struct winsize), &kws, sizeof(struct winsize)) != 0) {
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
} else {
|
|
||||||
return LOS_OK;
|
|
||||||
}
|
}
|
||||||
|
return LOS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC INT32 ConsoleGetTermios(unsigned long arg)
|
STATIC INT32 ConsoleGetTermios(unsigned long arg)
|
||||||
|
|
Loading…
Reference in New Issue