lkml.org 
[lkml]   [2017]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH RT 03/10] random: avoid preempt_disable()ed section
On Fri, 24 Nov 2017 14:26:40 +0800
Alex Shi <alex.shi@linaro.org> wrote:

> Hi Steve,
>
> I just build the patches, a build error found here:
>
> drivers/char/random.c: In function ‘get_random_int’:
> drivers/char/random.c:1816:7: error: assignment from incompatible
> pointer type [-Werror=incompatible-pointer-types]
> hash = &get_locked_var(hash_entropy_int_lock, get_random_int_hash);
> ^
> drivers/char/random.c: In function ‘get_random_long’:
> drivers/char/random.c:1838:7: error: assignment from incompatible
> pointer type [-Werror=incompatible-pointer-types]
> hash = &get_locked_var(hash_entropy_int_lock, get_random_int_hash);
> ^
>
> > - hash = get_cpu_var(get_random_int_hash);
> > + hash = &get_locked_var(hash_entropy_int_lock, get_random_int_hash);
> ^
> Is this a extra '&' which need to remove?
>
> >
> > hash[0] += current->pid + jiffies + random_get_entropy();
> > md5_transform(hash, random_int_secret);
> > ret = hash[0];
> > - put_cpu_var(get_random_int_hash);
> > + put_locked_var(hash_entropy_int_lock, get_random_int_hash);
> >
> > return ret;
> > }
> > @@ -1833,12 +1835,12 @@ unsigned long get_random_long(void)
> > if (arch_get_random_long(&ret))
> > return ret;
> >
> > - hash = get_cpu_var(get_random_int_hash);
> > + hash = &get_locked_var(hash_entropy_int_lock, get_random_int_hash);
> ^
> Ditto

Thanks! I made the following update. I forgot to check for warnings in
the build. :-/

-- Steve

diff --git a/drivers/char/random.c b/drivers/char/random.c
index b41745c5962c..46c0e27cf27f 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -1813,7 +1813,7 @@ unsigned int get_random_int(void)
if (arch_get_random_int(&ret))
return ret;

- hash = &get_locked_var(hash_entropy_int_lock, get_random_int_hash);
+ hash = get_locked_var(hash_entropy_int_lock, get_random_int_hash);

hash[0] += current->pid + jiffies + random_get_entropy();
md5_transform(hash, random_int_secret);
@@ -1835,7 +1835,7 @@ unsigned long get_random_long(void)
if (arch_get_random_long(&ret))
return ret;

- hash = &get_locked_var(hash_entropy_int_lock, get_random_int_hash);
+ hash = get_locked_var(hash_entropy_int_lock, get_random_int_hash);

hash[0] += current->pid + jiffies + random_get_entropy();
md5_transform(hash, random_int_secret);
\
 
 \ /
  Last update: 2017-11-28 03:19    [W:0.109 / U:1.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site