Message ID | 1264484928.3536.1017.camel@calx |
---|---|
State | New, archived |
Headers | show |
On Mon, 2010-01-25 at 23:48 -0600, Matt Mackall wrote: > Hmm. I'd just as soon drop it entirely. Here's a patch. Herbert, you > want to send this through your crypto tree? > > > random: drop weird m_time/a_time manipulation > > No other driver does anything remotely like this that I know of except > for the tty drivers, and I can't see any reason for random/urandom to do > it. In fact, it's a (trivial, harmless) timing information leak. And > obviously, it generates power- and flash-cycle wasting I/O, especially > if combined with something like hwrngd. Also, it breaks ubifs's > expectations. > > Signed-off-by: Matt Mackall <mpm@selenic.com> > > diff -r 29db0c391ce8 drivers/char/random.c > --- a/drivers/char/random.c Sun Jan 17 11:01:16 2010 -0800 > +++ b/drivers/char/random.c Mon Jan 25 23:32:00 2010 -0600 > @@ -1051,12 +1051,6 @@ > /* like a named pipe */ > } > > - /* > - * If we gave the user some bytes, update the access time. > - */ > - if (count) > - file_accessed(file); > - > return (count ? count : retval); > } > > @@ -1116,8 +1110,6 @@ > if (ret) > return ret; > > - inode->i_mtime = current_fs_time(inode->i_sb); > - mark_inode_dirty(inode); > return (ssize_t)count; > } It may brake other FSes expectations, theoretically, as well. Anyway, I'm perfectly fine if this is removed. Jeff, could you please try Matt's patch and report back if you still have issues or not. If no, you can use this as a temporary work-around until a proper fix hits upstream or ubifs-2.6.git. Thanks!
On Tue, 2010-01-26 at 12:03 +0200, Artem Bityutskiy wrote: > On Mon, 2010-01-25 at 23:48 -0600, Matt Mackall wrote: > > Hmm. I'd just as soon drop it entirely. Here's a patch. Herbert, you > > want to send this through your crypto tree? > > > > > > random: drop weird m_time/a_time manipulation > > > > No other driver does anything remotely like this that I know of except > > for the tty drivers, and I can't see any reason for random/urandom to do > > it. In fact, it's a (trivial, harmless) timing information leak. And > > obviously, it generates power- and flash-cycle wasting I/O, especially > > if combined with something like hwrngd. Also, it breaks ubifs's > > expectations. > > > > Signed-off-by: Matt Mackall <mpm@selenic.com> Just in case anyone wonders where this came from, here is the beginning of the thread: http://lists.infradead.org/pipermail/linux-mtd/2010-January/028727.html
On Mon, Jan 25, 2010 at 11:48:48PM -0600, Matt Mackall wrote: > > random: drop weird m_time/a_time manipulation > > No other driver does anything remotely like this that I know of except > for the tty drivers, and I can't see any reason for random/urandom to do > it. In fact, it's a (trivial, harmless) timing information leak. And > obviously, it generates power- and flash-cycle wasting I/O, especially > if combined with something like hwrngd. Also, it breaks ubifs's > expectations. > > Signed-off-by: Matt Mackall <mpm@selenic.com> Thanks Matt, I'll add this to crypto-2.6 and then stable.
diff -r 29db0c391ce8 drivers/char/random.c --- a/drivers/char/random.c Sun Jan 17 11:01:16 2010 -0800 +++ b/drivers/char/random.c Mon Jan 25 23:32:00 2010 -0600 @@ -1051,12 +1051,6 @@ /* like a named pipe */ } - /* - * If we gave the user some bytes, update the access time. - */ - if (count) - file_accessed(file); - return (count ? count : retval); } @@ -1116,8 +1110,6 @@ if (ret) return ret; - inode->i_mtime = current_fs_time(inode->i_sb); - mark_inode_dirty(inode); return (ssize_t)count; }