On Wed, 2016-06-15 at 16:20 -0600, Logan Gunthorpe wrote: > Hey, > > Actually, I have to retract this patch. After some more thorough > testing > I'm finding an issue: > > When you remove and re-install the ntb_perf module very quickly, > ntb_perf will occasionally miss the link up event. This is because > the > link_cleanup work gets delayed long enough that it gets scheduled > after > the link up event gets sent. It then cancels the link work that > should > have occurred. Without this patch, it never happens because > link_is_up > never returns to false. > > I think the correct solution is to just remove the link_cleanup work > and > do those actions immediately on receipt of the event. If there's > agreement on this I can re-spin it again. I'm ok with that. This is not an issue with ntb_transport? > > Thanks, > > Logan > > > On 15/06/16 03:33 PM, Jiang, Dave wrote: > > > > On Wed, 2016-06-15 at 15:26 -0600, Logan Gunthorpe wrote: > > > > > > When the link goes down, the link_is_up flag did not return to > > > false. This could have caused some subtle corner case bugs > > > when the link goes up and down quickly. > > > > > > Signed-off-by: Logan Gunthorpe <logang@xxxxxxxxxxxx> > > Acked-by: Dave Jiang <dave.jiang@xxxxxxxxx> > > > > And all the other ntb_perf patches since there were no additional > > changes. > > > > > > > > --- > > > drivers/ntb/test/ntb_perf.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/drivers/ntb/test/ntb_perf.c > > > b/drivers/ntb/test/ntb_perf.c > > > index f0784e5..ae9d1b2 100644 > > > --- a/drivers/ntb/test/ntb_perf.c > > > +++ b/drivers/ntb/test/ntb_perf.c > > > @@ -557,6 +557,8 @@ static void perf_link_cleanup(struct > > > work_struct > > > *work) > > > > > > if (!perf->link_is_up) > > > cancel_delayed_work_sync(&perf->link_work); > > > + > > > + perf->link_is_up = false; > > > } > > > > > > static int perf_setup_mw(struct ntb_dev *ntb, struct perf_ctx > > > *perf) > > > -- > > > 2.1.4��.n��������+%������w��{.n�����{��K����n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�