Most users of IS_ERR_VALUE() in the kernel are wrong, as they
pass an 'int' into a function that takes an 'unsigned long'
argument. This happens to work because the type is sign-extended
on 64-bit architectures before it gets converted into an
unsigned type.
However, anything that passes an 'unsig
On Fri, 27 May 2016 23:23:25 +0200 Arnd Bergmann wrote:
> Most users of IS_ERR_VALUE() in the kernel are wrong, as they
> pass an 'int' into a function that takes an 'unsigned long'
> argument. This happens to work because the type is sign-extended
> on 64-bit architectures before it gets convert
On Fri, May 27, 2016 at 2:46 PM, Andrew Morton
wrote:
>
> So you do plan to add some sort of typechecking into IS_ERR_VALUE()?
The easiest way to do it is to just turn the (x) into (unsigned
long)(void *)(x), which then complains about casting an integer to a
pointer if the integer has the wrong
On 27/05/16 22:23, Arnd Bergmann wrote:
drivers/acpi/acpi_dbg.c | 22 +++---
drivers/ata/sata_highbank.c | 2 +-
drivers/clk/tegra/clk-tegra210.c | 2 +-
drivers/cpufreq/omap-cpufreq.c | 2 +-
On Fri, May 27, 2016 at 11:23:25PM +0200, Arnd Bergmann wrote:
> @@ -837,7 +837,7 @@ static int load_flat_shared_library(int id, struct
> lib_info *libs)
>
> res = prepare_binprm(&bprm);
>
> - if (!IS_ERR_VALUE(res))
> + if (res >= 0)
if (res == 0), please - prepare_bin
On Fri, May 27, 2016 at 2:23 PM, Arnd Bergmann wrote:
>
> This patch changes all users of IS_ERR_VALUE() that I could find
> on 32-bit ARM randconfig builds and x86 allmodconfig. For the
> moment, this doesn't change the definition of IS_ERR_VALUE()
> because there are probably still architecture