From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from cpsmtpb-ews03.kpnxchange.com ([213.75.39.6]:3570 "EHLO cpsmtpb-ews03.kpnxchange.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750757Ab2CTELu (ORCPT ); Tue, 20 Mar 2012 00:11:50 -0400 Message-ID: <4F680383.8020707@gmail.com> (sfid-20120320_051154_542360_535744C7) Date: Tue, 20 Mar 2012 05:11:47 +0100 From: Gertjan van Wingerde MIME-Version: 1.0 To: Stanislaw Gruszka CC: "John W. Linville" , linux-wireless@vger.kernel.org, users@rt2x00.serialmonkey.com, Jakub Kicinski Subject: Re: [PATCH] rt2x00: rt2800usb: fix status register reread logic References: <1332169181-23169-1-git-send-email-sgruszka@redhat.com> In-Reply-To: <1332169181-23169-1-git-send-email-sgruszka@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: On 03/19/12 15:59, Stanislaw Gruszka wrote: > Another good catch from Jakub Kicinski. This patch fixes my > recent commit: ed61e2b02027935520d1be884fac0b2ffce8379a > "rt2x00: rt2800usb: rework txdone code" > > We should reread status register only when nobody else start already > reading status i.e. test_and_set_bit(TX_STATUS_READING, flags) return 0. > > Reported-by: Jakub Kicinski > Signed-off-by: Stanislaw Gruszka Acked-by: Gertjan van Wingerde > --- > drivers/net/wireless/rt2x00/rt2800usb.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c > index f97f846..001735f 100644 > --- a/drivers/net/wireless/rt2x00/rt2800usb.c > +++ b/drivers/net/wireless/rt2x00/rt2800usb.c > @@ -184,7 +184,7 @@ stop_reading: > * here again if status reading is needed. > */ > if (rt2800usb_txstatus_pending(rt2x00dev) && > - test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags)) > + !test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags)) > return true; > else > return false; -- --- Gertjan