Re: [PATCH] drivers/block/ub.c: use list_for_each_entry()

"Satyam Sharma" <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.usb.devel
Message-ID <[email protected]>
Hi Pete,

On 5/31/07, Pete Zaitcev <[email protected]> wrote:
> On Wed, 30 May 2007 10:47:52 +0200, Matthias Kaehlcke <[email protected]> wrote:
>
> > @@ -1608,8 +1605,7 @@ static void ub_reset_task(struct work_struct *work)
> >       spin_lock_irqsave(sc->lock, flags);
> >       sc->reset = 0;
> >       tasklet_schedule(&sc->tasklet);
> > -     list_for_each(p, &sc->luns) {
> > -             lun = list_entry(p, struct ub_lun, link);
> > +     list_for_each_entry(lun, &sc->luns, link) {
> >               blk_start_queue(lun->disk->queue);
> >       }
> >       wake_up(&sc->reset_wait);
>
> This patch straddles the border of acceptable. The pointless obfuscation
> is balanced against the removal of explicit type in list_entry() and thus
> a possible mismatched struct. I'm not acking nor naking this.

A list_for_each() followed by list_entry() ---> list_for_each_entry()
conversion is a pretty harmless (and desirable) conversion, IMO.
In fact list_for_each_entry() itself uses list_entry(..., typeof(*p), ...)
which seems to be a safer way to use list_entry() than specifying
the type explicity/manually in its arguments, no?

Satyam
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.