video:uvesafb: notice user when we failed to save hardware state
PATCH 1/1 video:uvesafb: notice user when we failed to save hardware state
uvesafb_open may failed to save hardware state when kmalloc failed in uvesafb_vbe_state_save, we should check this and notice user.
Signed-off-by Wang YanQing <[email protected]>
--- drivers/video/uvesafb.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
drivers/video/uvesafb.c +11 -3
@@ -362,7 +362,7 @@ static u8 *uvesafb_vbe_state_save(struct uvesafb_par *par) state =kmalloc (par->vbe_state_size,GFP_KERNEL );if (!state) -return NULL ; +return ERR_PTR (-ENOMEM ); task =uvesafb_prep ();if (!task) {
@@ -1172,9 +1172,17 @@ static int uvesafb_open(struct fb_info *info, int user) {struct uvesafb_par *par = info->par;int cnt =atomic_read (&par->ref_count); +u8 *buf =NULL ; -if (!cnt && par->vbe_state_size) - par->vbe_state_orig =uvesafb_vbe_state_save (par); +if (!cnt && par->vbe_state_size) { + buf =uvesafb_vbe_state_save (par); +if (IS_ERR (buf)) { +printk (KERN_WARNING "uvesafb: save hardware state" +"failed, error code is %ld!\n" ,PTR_ERR (buf)); + }else { + par->vbe_state_orig = buf; + } + }atomic_inc (&par->ref_count);return 0 ;
Signature · 1 line
1.7.9.2.315.g25a78
Florian Tobias Schandinat
AppliedQuoted 5 lines · Wang YanQing
uvesafb_openmay failed to save hardware state when kmalloc failed inuvesafb_vbe_state_save, we should check this and notice user.Signed-off-by Wang YanQing <[email protected]>
Applied.
Thanks,
Florian Tobias Schandinat
Quoted 37 lines
--- drivers/video/uvesafb.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)drivers/video/uvesafb.c +11
-3@@ -362,7 +362,7 @@ static u8 *uvesafb_vbe_state_save(struct uvesafb_par *par) state =kmalloc (par->vbe_state_size,GFP_KERNEL );if (!state) -return NULL ; +return ERR_PTR (-ENOMEM ); task =uvesafb_prep ();if (!task) {@@ -1172,9 +1172,17 @@ static int uvesafb_open(struct fb_info *info, int user) {struct uvesafb_par *par = info->par;int cnt =atomic_read (&par->ref_count); +u8 *buf =NULL ; -if (!cnt && par->vbe_state_size) - par->vbe_state_orig =uvesafb_vbe_state_save (par); +if (!cnt && par->vbe_state_size) { + buf =uvesafb_vbe_state_save (par); +if (IS_ERR (buf)) { +printk (KERN_WARNING "uvesafb: save hardware state" +"failed, error code is %ld!\n" ,PTR_ERR (buf)); + }else { + par->vbe_state_orig = buf; + } + }atomic_inc (&par->ref_count);return 0 ;