<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:"Arial Unicode MS";
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Microsoft YaHei";
        panose-1:2 11 5 3 2 2 4 2 2 4;}
@font-face
        {font-family:"Microsoft YaHei";
        panose-1:2 11 5 3 2 2 4 2 2 4;}
@font-face
        {font-family:"\@Arial Unicode MS";
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        font-size:10.5pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Arial Unicode MS",sans-serif;
        color:#1F4E79;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Arial Unicode MS",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ZH-CN" link="#0563C1" vlink="#954F72" style="text-justify-trim:punctuation">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">Hi all,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">When I run linux-4.19.2 on arm64, I got panic in sys_imageblit. My test steps are as fllows:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">1) Remote login using BMC;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">2) Enter a bunch of 'Enter' keys;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">3) Execute the 'top' command and continuously press shift + page up several times.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">This gives the following panic on the serial console:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923256] Unable to handle kernel paging request at virtual address ffff00002f0bc010<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923258] Mem abort info:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923259]   ESR = 0x96000047<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923261]   Exception class = DABT (current EL), IL = 32 bits<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923262]   SET = 0, FnV = 0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923263]   EA = 0, S1PTW = 0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923263] Data abort info:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923265]   ISV = 0, ISS = 0x00000047<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923265]   CM = 0, WnR = 1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923269] swapper pgtable: 4k pages, 48-bit VAs, pgdp = 00000000ea9a862f<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923270] [ffff00002f0bc010] pgd=000000dffbffe803, pud=000000dffbffd803, pmd=000000bf758ee003, pte=0000000000000000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923279] Internal error: Oops: 96000047 [#1] SMP<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923285] CPU: 45 PID: 16061 Comm: top Kdump: loaded Tainted: G           OE     4.19.2-1.1.23.aarch64 #1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923286] Hardware name: Huawei Taishan 2280 /BC11SPCD, BIOS 1.46 03/29/2018<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923288] pstate: 80000005 (Nzcv daif -PAN -UAO)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923295] pc : sys_imageblit+0x414/0x1000 [sysimgblt]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923317] lr : drm_fb_helper_sys_imageblit+0x28/0x50 [drm_kms_helper]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923318] sp : ffff00002f6d3820<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923319] x29: ffff00002f6d3820 x28: 00000000000000ff<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923322] x27: 0000000000000010 x26: 0000000000000001<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923325] x25: 0000000000000118 x24: 0000000000000008<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923327] x23: ffff805f771db800 x22: 0000000000000000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923330] x21: ffff00002f6d3958 x20: ffff00002f0bc010<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923332] x19: 0000000000000000 x18: 0000000000000000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923335] x17: 0000000000000000 x16: 0000000000000000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923337] x15: 0000000000000000 x14: 2020202020202020<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923339] x13: 2020202064686374 x12: ffff805f77927360<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923342] x11: ffff000000f54078 x10: 0000000000000023<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923344] x9 : 000000000000000f x8 : 0000000000000003<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923346] x7 : 000000000000008c x6 : 0000000000000002<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923349] x5 : 0000000000000000 x4 : 00000000ad55ad55<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923352] x3 : ffff805f77927360 x2 : 0000000000000000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923354] x1 : 0000000000000006 x0 : 0000000000000000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923357] Process top (pid: 16061, stack limit = 0x00000000d490d156)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923359] Call trace:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923363]  sys_imageblit+0x414/0x1000 [sysimgblt]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923373]  drm_fb_helper_sys_imageblit+0x28/0x50 [drm_kms_helper]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923387]  bit_putcs+0x29c/0x4a0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923391]  fbcon_putcs+0x110/0x148<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923397]  do_update_region+0x138/0x1d8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923399]  do_con_trol+0xb44/0x13e0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923400]  do_con_write.part.29+0x1d0/0x8f0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923402]  con_write+0x70/0x78<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923405]  n_tty_write+0x1a8/0x428<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923407]  tty_write+0x1bc/0x2f0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923412]  __vfs_write+0x60/0x1a8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923414]  vfs_write+0xb0/0x1a8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923416]  ksys_write+0x6c/0xd8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923418]  __arm64_sys_write+0x28/0x38<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923424]  el0_svc_common+0xb8/0x118<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923426]  el0_svc_handler+0x38/0x88<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923429]  el0_svc+0x8/0xc<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923431] Code: 0a080000 b8605960 0a000080 4a050000 (b8227a80)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">[47229.923436] [kbox] die event detected<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">I followed the same test steps and found the same problem in the linux-4.20.0-rc3.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">In the test I found that if the variable bitstart in function sys_imageblit is greater than variable p->screen_size - 1, the kernel will
 panic.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">The following patch seems to work fine in my test:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">diff --git a/drivers/video/fbdev/core/sysimgblt.c b/drivers/video/fbdev/core/sysimgblt.c<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">index a4d05b1..b316404 100644<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">--- a/drivers/video/fbdev/core/sysimgblt.c<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">+++ b/drivers/video/fbdev/core/sysimgblt.c<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">@@ -254,6 +254,9 @@ void sys_imageblit(struct fb_info *p, const struct fb_image *image)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">        bitstart /= 8;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">        bitstart &= ~(bpl - 1);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">+ if (p->screen_size - 1 < bitstart)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">+         return;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">        dst1 = (void __force *)p->screen_base + bitstart;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:Consolas;color:#1F4E79">        if (p->fbops->fb_sync)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">So please CC me directly on any reply.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">Many thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F4E79">Zengruan.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>