2008-11-10 10:53:25

by Amos Kong

[permalink] [raw]
Subject: [PATCH] drivers: process failure of sysfs_create_group()


drivers: drivers/video/uvesafb.c:
When fail to call sysfs_create_group(), it should recycle resources and return the error.
This patch fix for processing failure of sysfs_create_group().

Signed-off-by: Jianjun Kong <[email protected]>
---
drivers/video/uvesafb.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
index 6c2d37f..a78d4d9 100644
--- a/drivers/video/uvesafb.c
+++ b/drivers/video/uvesafb.c
@@ -1811,12 +1811,16 @@ static int __devinit uvesafb_probe(struct platform_device *dev)
info->fix.id);

err = sysfs_create_group(&dev->dev.kobj, &uvesafb_dev_attgrp);
- if (err != 0)
+ if (err != 0) {
printk(KERN_WARNING "fb%d: failed to register attributes\n",
info->node);
+ goto out_frame;
+ }

return 0;

+our_frame:
+ unregister_framebuffer(info);
out_reg:
release_region(0x3c0, 32);
out_unmap:
--
1.5.6.3


2008-11-10 21:30:57

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [Linux-fbdev-devel] [PATCH] drivers: process failure of sysfs_create_group()

On Mon, 10 Nov 2008, Jianjun Kong wrote:
> drivers: drivers/video/uvesafb.c:
> When fail to call sysfs_create_group(), it should recycle resources and return the error.
> This patch fix for processing failure of sysfs_create_group().

IIRC, the reasoning behind the current code is that a failure to create sysfs
entries is not critical, as it doesn't impact the correct functioning of the
core of the driver.

> Signed-off-by: Jianjun Kong <[email protected]>
> ---
> drivers/video/uvesafb.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
> index 6c2d37f..a78d4d9 100644
> --- a/drivers/video/uvesafb.c
> +++ b/drivers/video/uvesafb.c
> @@ -1811,12 +1811,16 @@ static int __devinit uvesafb_probe(struct platform_device *dev)
> info->fix.id);
>
> err = sysfs_create_group(&dev->dev.kobj, &uvesafb_dev_attgrp);
> - if (err != 0)
> + if (err != 0) {
> printk(KERN_WARNING "fb%d: failed to register attributes\n",
> info->node);
> + goto out_frame;
> + }
>
> return 0;
>
> +our_frame:
> + unregister_framebuffer(info);
> out_reg:
> release_region(0x3c0, 32);
> out_unmap:

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2008-11-11 10:05:40

by Michal Januszewski

[permalink] [raw]
Subject: Re: [Linux-fbdev-devel] [PATCH] drivers: process failure of sysfs_create_group()

On Mon, Nov 10, 2008 at 22:30, Geert Uytterhoeven <[email protected]> wrote:

>> When fail to call sysfs_create_group(), it should recycle resources and return the error.
>> This patch fix for processing failure of sysfs_create_group().
>
> IIRC, the reasoning behind the current code is that a failure to create sysfs
> entries is not critical, as it doesn't impact the correct functioning of the
> core of the driver.

That's correct -- that was exactly my reasoning behind this code.

--
Michal Januszewski, Gentoo Linux Developer
http://people.gentoo.org/spock