On Wed, 16 Oct 2013 23:30:05 +0200 Peter Zijlstra <pet...@infradead.org>
wrote:

> On Wed, Oct 16, 2013 at 08:51:39PM +0200, Thierry Reding wrote:
> > Today's linux-next merge of the tip tree got a conflict in
> > 
> >     include/linux/wait.h
> > 
> > caused by commits 1ab2460 (wait: add wait_event_cmd()) and fb869b6
> > (sched/wait: Clean up wait.h details a bit).
> > 
> > I've cleaned it up (see below). Please verify that the resolution looks
> > good.
> 
> >  +#define __wait_event_cmd(wq, condition, cmd1, cmd2)                       
> > \
> >  +do {                                                                      
> > \
> >  +  DEFINE_WAIT(__wait);                                            \
> >  +                                                                  \
> >  +  for (;;) {                                                      \
> >  +          prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE);    \
> >  +          if (condition)                                          \
> >  +                  break;                                          \
> >  +          cmd1;                                                   \
> >  +          schedule();                                             \
> >  +          cmd2;                                                   \
> >  +  }                                                               \
> >  +  finish_wait(&wq, &__wait);                                      \
> >  +} while (0)
> 
> Ideally we'd write the new thing like:
> 
> #define __wait_event_cmd(wq, condition, cmd1, cmd2)                   \
>       (void)___wait_event(wq, condition, TASK_UNINTERRUPTIBLE, 0, 0,  \
>                           cmd1; schedule(); cmd2)
> 

Oooo.. that looks much nicer.  I'll make it look like that before it goes
upstream.

Thanks,
NeilBrown

Attachment: signature.asc
Description: PGP signature

Reply via email to