Return-path: Received: from mx1.chubb.wattle.id.au ([128.177.28.167]:46628 "EHLO mx1.chubb.wattle.id.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751991AbYGaDMO (ORCPT ); Wed, 30 Jul 2008 23:12:14 -0400 Date: Thu, 31 Jul 2008 12:11:24 +1000 Message-ID: <87wsj2246r.wl%peterc@chubb.wattle.id.au> (sfid-20080731_051218_930351_184089AC) From: Peter Chubb To: Peter Chubb Cc: Ivo van Doorn , linux-kernel@vger.kernel.org, linux-wireless@vger.kernel.org, John Linville Subject: Re: Fixing rt2500pci [PATCH] In-Reply-To: <87vdym6fct.wl%peterc@chubb.wattle.id.au> References: <87tze8vu18.wl%peterc@chubb.wattle.id.au> <200807302105.56909.IvDoorn@gmail.com> <200807302115.03865.IvDoorn@gmail.com> <87vdym6fct.wl%peterc@chubb.wattle.id.au> MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-wireless-owner@vger.kernel.org List-ID: In kernel version 2.6.26-rc9 my wireless LAN card worked; but in the released 2.6.26, my RaLink rt2500 card wouldn't associate. Git-bisect led me to this patch: 61486e0f68d1f8966c09b734566a187d42d65c54 rt2x00: Remove ieee80211_tx_control argument from write_tx_desc() I believe that there is a problem with that patch --- it (inadvertantly) removes an extra line of code, that used to set the DATABYTE_COUNT field. This patch reinstates that line, and with it my card works again. The original version I sent still used the skbdesc->data_len which has been removed; this version of the patch applies on top of 2.6.27-rc1. Signed-off-by: Peter Chubb Acked-by: Ivo van Doorn Index: linux-2.6-git/drivers/net/wireless/rt2x00/rt2500pci.c =================================================================== --- linux-2.6-git.orig/drivers/net/wireless/rt2x00/rt2500pci.c 2008-07-31 10:58:43.000000000 +1000 +++ linux-2.6-git/drivers/net/wireless/rt2x00/rt2500pci.c 2008-07-31 11:40:44.000000000 +1000 @@ -1213,20 +1213,21 @@ static void rt2500pci_write_tx_desc(stru rt2x00_set_field32(&word, TXD_W0_ACK, test_bit(ENTRY_TXD_ACK, &txdesc->flags)); rt2x00_set_field32(&word, TXD_W0_TIMESTAMP, test_bit(ENTRY_TXD_REQ_TIMESTAMP, &txdesc->flags)); rt2x00_set_field32(&word, TXD_W0_OFDM, test_bit(ENTRY_TXD_OFDM_RATE, &txdesc->flags)); rt2x00_set_field32(&word, TXD_W0_CIPHER_OWNER, 1); rt2x00_set_field32(&word, TXD_W0_IFS, txdesc->ifs); rt2x00_set_field32(&word, TXD_W0_RETRY_MODE, test_bit(ENTRY_TXD_RETRY_MODE, &txdesc->flags)); + rt2x00_set_field32(&word, TXD_W0_DATABYTE_COUNT, skb->len); rt2x00_set_field32(&word, TXD_W0_CIPHER_ALG, CIPHER_NONE); rt2x00_desc_write(txd, 0, word); } /* * TX data initialization */ static void rt2500pci_write_beacon(struct queue_entry *entry) { struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; -- Dr Peter Chubb http://www.gelato.unsw.edu.au peterc AT gelato.unsw.edu.au http://www.ertos.nicta.com.au ERTOS within National ICT Australia