All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Buesch <mb@bu3sch.de>
To: Sergey Vlasov <vsu@altlinux.ru>, gregkh@suse.de
Cc: akpm@osdl.org, Deepak Saxena <dsaxena@plexity.net>,
	bcm43xx-dev@lists.berlios.de, linux-kernel@vger.kernel.org
Subject: Re: [patch 2/6] New Generic HW RNG
Date: Sun, 7 May 2006 15:16:08 +0200	[thread overview]
Message-ID: <200605071516.09167.mb@bu3sch.de> (raw)
In-Reply-To: <20060507170320.3ce0d3e0.vsu@altlinux.ru>

On Sunday 07 May 2006 15:03, you wrote:
> This does not handle the case of partial read correctly - the code
> should be
> 
> 			return ret ? : -ERESTARTSYS;
> 
> > +		if (!current_rng) {
> > +			mutex_unlock(&rng_mutex);
> > +			return -ENODEV;
> 
> The same problem here (although finding the RNG suddenly missing after
> we heve just read something from it is pretty unlikely).
> 
> > +		}
> > +		have_data = 0;
> > +		if (current_rng->data_present == NULL ||
> > +		    current_rng->data_present(current_rng))
> > +			have_data = current_rng->data_read(current_rng, &data);
> > +		mutex_unlock(&rng_mutex);
> > +
> > +		while (have_data && size) {
> > +			if (put_user((u8)data, buf++)) {
> > +				ret = ret ? : -EFAULT;
> > +				break;
> > +			}
> > +			size--;
> > +			ret++;
> > +			have_data--;
> > +			data>>=8;
> > +		}
> > +
> > +		if (filp->f_flags & O_NONBLOCK)
> > +			return ret ? : -EAGAIN;
> > +
> > +		if (need_resched()) {
> > +			schedule_timeout_interruptible(1);
> > +		} else {
> > +			err = mutex_lock_interruptible(&rng_mutex);
> > +			if (err)
> > +				return err;
> 
> And here...
> 
> > +			if (!current_rng) {
> > +				mutex_unlock(&rng_mutex);
> > +				return -ENODEV;
> 
> And here too.

Whoops, will fix these.

> > +	list_for_each_entry(rng, &rng_list, list) {
> > +		if (strncmp(rng->name, buf, len) == 0) {
> 
> This will match if the passed string is just a prefix of rng->name.
> Apparently sysfs guarantees that the buffer passed to ->store will be
> NUL-terminated, so this should be just a strcmp().

I am not sure if it is guaranteed NUL terminated. Greg?
But I will look into this.

> > +			if (rng->init) {
> > +				err = rng->init(rng);
> > +				if (err)
> > +					break;
> > +			}
> > +			if (current_rng && current_rng->cleanup)
> > +				current_rng->cleanup(current_rng);
> 
> What if rng == current_rng here (someone has written the same RNG name
> to the "store" attribute)?  The lowlevel RNG driver should not have to
> handle nested init/cleanup calls.

I see. Will fix this.


I will also fix the bcm43xx patch. It registers always with the same "name".
That will blow up, if there is more than one bcm43xx device in the system.

-- 
Greetings Michael.

  reply	other threads:[~2006-05-07 13:09 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-07 11:35 [patch 0/6] New Generic HW RNG Michael Buesch
2006-05-07 11:35 ` [patch 1/6] " Michael Buesch
2006-05-07 11:35 ` [patch 2/6] " Michael Buesch
2006-05-07 13:03   ` Sergey Vlasov
2006-05-07 13:16     ` Michael Buesch [this message]
2006-05-07 13:27       ` Michael Buesch
2006-05-07 13:45         ` Sergey Vlasov
2006-05-07 13:56           ` Michael Buesch
2006-05-10 20:57       ` Greg KH
2006-05-10 21:18         ` Michael Buesch
2006-05-07 11:35 ` [patch 3/6] " Michael Buesch
2006-05-07 13:09   ` Sergey Vlasov
2006-05-07 14:51     ` Michael Buesch
2006-05-07 11:35 ` [patch 4/6] " Michael Buesch
2006-05-07 11:35 ` [patch 5/6] " Michael Buesch
2006-05-07 11:35 ` [patch 6/6] " Michael Buesch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200605071516.09167.mb@bu3sch.de \
    --to=mb@bu3sch.de \
    --cc=akpm@osdl.org \
    --cc=bcm43xx-dev@lists.berlios.de \
    --cc=dsaxena@plexity.net \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vsu@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.