|
@@ -159,6 +159,9 @@ static int sm501_alloc_mem(struct sm501fb_info *inf, struct sm501_mem *mem,
|
|
break;
|
|
break;
|
|
|
|
|
|
case SM501_MEMF_PANEL:
|
|
case SM501_MEMF_PANEL:
|
|
|
|
+ if (size > inf->fbmem_len)
|
|
|
|
+ return -ENOMEM;
|
|
|
|
+
|
|
ptr = inf->fbmem_len - size;
|
|
ptr = inf->fbmem_len - size;
|
|
fbi = inf->fb[HEAD_CRT];
|
|
fbi = inf->fb[HEAD_CRT];
|
|
|
|
|
|
@@ -172,9 +175,6 @@ static int sm501_alloc_mem(struct sm501fb_info *inf, struct sm501_mem *mem,
|
|
if (fbi && ptr < fbi->fix.smem_len)
|
|
if (fbi && ptr < fbi->fix.smem_len)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
|
|
- if (ptr < 0)
|
|
|
|
- return -ENOMEM;
|
|
|
|
-
|
|
|
|
break;
|
|
break;
|
|
|
|
|
|
case SM501_MEMF_CRT:
|
|
case SM501_MEMF_CRT:
|