fbcon: Console Rotation - Fix wrong shift calculation
Subsystems (2)
PATCH 1/1 fbcon: Console Rotation - Fix wrong shift calculation
The shift value (amount to shift the bitmap so first pixel starts at origin(0,0)) is incorrect. This causes corrupted characters or a kernel crash if fontwidth is not divisible by 8 at 270 degrees, or fontheight not divisible by 8 at 180 degrees.
Report and part of the fix contributed by Knut Petersen.
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/console/fbcon_rotate.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/video/console/fbcon_rotate.h +2 -2
@@ -49,7 +49,7 @@ static inline void pattern_set_bit(u32 xstatic inline void rotate_ud (const char *in,char *out,u32 width,u32 height) {int i, j; -int shift = width %8 ; +int shift = (8 - (width %8 )) &7 ; width = (width +7 ) & ~7 ;
@@ -85,7 +85,7 @@ static inline void rotate_cw(const charstatic inline void rotate_ccw (const char *in,char *out,u32 width,u32 height) {int i, j, h = height, w = width; -int shift = width %8 ; +int shift = (8 - (width %8 )) &7 ; width = (width +7 ) & ~7 ; height = (height +7 ) & ~7 ;
-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc. Get Certified Today Register for a JBoss Training Course. Free Certification Exam for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click