Computing the clip rectangle is prone to off-by-one errors when writes
happen near the end of a memory page. Point the end of the memory area
to the first trailing byte, so that (end - start) returns the area's
length.

Signed-off-by: Xiaohui Zhang <xiaohuizh...@ruc.edu.cn>
---
 sys/dev/pci/drm/drm_fb_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/dev/pci/drm/drm_fb_helper.c b/sys/dev/pci/drm/drm_fb_helper.c
index d56b9c66e..358680902 100644
--- a/sys/dev/pci/drm/drm_fb_helper.c
+++ b/sys/dev/pci/drm/drm_fb_helper.c
@@ -715,7 +715,7 @@ void drm_fb_helper_deferred_io(struct fb_info *info,
        max = 0;
        list_for_each_entry(page, pagelist, lru) {
                start = page->index << PAGE_SHIFT;
-               end = start + PAGE_SIZE - 1;
+               end = start + PAGE_SIZE;
                min = min(min, start);
                max = max(max, end);
        }
-- 
2.17.1

Reply via email to