Re: [PATCH] therm_throt.c: Fix error handling inthermal_throttle_add_dev

From: Ingo Molnar
Date: Sun Sep 05 2010 - 08:33:16 EST



* Fenghua Yu <fenghua.yu@xxxxxxxxx> wrote:

> Or other options could be:
>
> 1. Just calling sysfs_add_file_to_group() without collecting returned error and
> return 0 at the end (driver/pci/pcie/aspm.c does like this). The drawback is
> there is no error logged if an unlikely errorr occurs. But user can see some
> files are missing in sysfs.
>
> 2. Or collect errors in err1, err2, etc for each sysfs_add_file_to_group. At
> the end, return -ENODEV(??) if any err1, err2, etc is not 0. This option makes
> code unreasonable complex to handle unlikely errors.

Well, the usual way to handle errors is to abort the operation when it
occurs, and return the error code that sysfs_add_file_to_group() gave.

The error is not 'fatal' but missing sysfs files sure are confusing, and
might break user-land which depends on them. So we should either
initialize a driver fully - or not intialize it at all.

Now, a sub-case is the question whether to emit something more than the
return code from sysfs_add_file_to_group(). If it's exceedingly rare
(and subsequently poorly tested) then adding a WARN_ON_ONCE(ret) is OK -
but that error code should be returned.

Am i missing any detail?

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/