Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 296920
Collapse All | Expand All

(-)linux-2.6.32-gentoo/drivers/staging/rtl8187se/ieee80211/ieee80211.h (-11 / +11 lines)
Lines 349-355 struct ieee_ibss_seq { Link Here
349
/* NOTE: This data is for statistical purposes; not all hardware provides this
349
/* NOTE: This data is for statistical purposes; not all hardware provides this
350
 *       information for frames received.  Not setting these will not cause
350
 *       information for frames received.  Not setting these will not cause
351
 *       any adverse affects. */
351
 *       any adverse affects. */
352
struct ieee80211_rx_stats {
352
struct rtl8187se_rx_stats {
353
	u32 mac_time[2];
353
	u32 mac_time[2];
354
	u8 signalstrength;
354
	u8 signalstrength;
355
	s8 rssi;
355
	s8 rssi;
Lines 792-798 struct ieee80211_network { Link Here
792
	u8 ssid_len;
792
	u8 ssid_len;
793
793
794
	/* These are network statistics */
794
	/* These are network statistics */
795
	struct ieee80211_rx_stats stats;
795
	struct rtl8187se_rx_stats stats;
796
	u16 capability;
796
	u16 capability;
797
	u8 rates[MAX_RATES_LENGTH];
797
	u8 rates[MAX_RATES_LENGTH];
798
	u8 rates_len;
798
	u8 rates_len;
Lines 1323-1334 extern int ieee80211_xmit(struct sk_buff Link Here
1323
extern void ieee80211_txb_free(struct ieee80211_txb *);
1323
extern void ieee80211_txb_free(struct ieee80211_txb *);
1324
1324
1325
1325
1326
/* ieee80211_rx.c */
1326
/* rtl8187se_rx.c */
1327
extern int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
1327
extern int rtl8187se_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
1328
			struct ieee80211_rx_stats *rx_stats);
1328
			struct rtl8187se_rx_stats *rx_stats);
1329
extern void ieee80211_rx_mgt(struct ieee80211_device *ieee,
1329
extern void rtl8187se_rx_mgt(struct ieee80211_device *ieee,
1330
			     struct ieee80211_hdr_4addr *header,
1330
			     struct ieee80211_hdr_4addr *header,
1331
			     struct ieee80211_rx_stats *stats);
1331
			     struct rtl8187se_rx_stats *stats);
1332
1332
1333
/* ieee80211_wx.c */
1333
/* ieee80211_wx.c */
1334
extern int ieee80211_wx_get_scan(struct ieee80211_device *ieee,
1334
extern int ieee80211_wx_get_scan(struct ieee80211_device *ieee,
Lines 1354-1361 int ieee80211_wx_set_gen_ie(struct ieee8 Link Here
1354
/* ieee80211_softmac.c */
1354
/* ieee80211_softmac.c */
1355
extern short ieee80211_is_54g(struct ieee80211_network net);
1355
extern short ieee80211_is_54g(struct ieee80211_network net);
1356
extern short ieee80211_is_shortslot(struct ieee80211_network net);
1356
extern short ieee80211_is_shortslot(struct ieee80211_network net);
1357
extern int ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
1357
extern int rtl8187se_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
1358
			struct ieee80211_rx_stats *rx_stats, u16 type,
1358
			struct rtl8187se_rx_stats *rx_stats, u16 type,
1359
			u16 stype);
1359
			u16 stype);
1360
extern void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee80211_network *net);
1360
extern void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee80211_network *net);
1361
1361
Lines 1376-1383 extern void ieee80211_stop_protocol(stru Link Here
1376
extern void ieee80211_softmac_start_protocol(struct ieee80211_device *ieee);
1376
extern void ieee80211_softmac_start_protocol(struct ieee80211_device *ieee);
1377
extern void ieee80211_softmac_stop_protocol(struct ieee80211_device *ieee);
1377
extern void ieee80211_softmac_stop_protocol(struct ieee80211_device *ieee);
1378
extern void ieee80211_reset_queue(struct ieee80211_device *ieee);
1378
extern void ieee80211_reset_queue(struct ieee80211_device *ieee);
1379
extern void ieee80211_wake_queue(struct ieee80211_device *ieee);
1379
extern void rtl8187se_wake_queue(struct ieee80211_device *ieee);
1380
extern void ieee80211_stop_queue(struct ieee80211_device *ieee);
1380
extern void rtl8187se_stop_queue(struct ieee80211_device *ieee);
1381
extern struct sk_buff *ieee80211_get_beacon(struct ieee80211_device *ieee);
1381
extern struct sk_buff *ieee80211_get_beacon(struct ieee80211_device *ieee);
1382
extern void ieee80211_start_send_beacons(struct ieee80211_device *ieee);
1382
extern void ieee80211_start_send_beacons(struct ieee80211_device *ieee);
1383
extern void ieee80211_stop_send_beacons(struct ieee80211_device *ieee);
1383
extern void ieee80211_stop_send_beacons(struct ieee80211_device *ieee);
(-)linux-2.6.32-gentoo/drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c (-22 / +22 lines)
Lines 47-53 Link Here
47
#include "dot11d.h"
47
#include "dot11d.h"
48
static inline void ieee80211_monitor_rx(struct ieee80211_device *ieee,
48
static inline void ieee80211_monitor_rx(struct ieee80211_device *ieee,
49
					struct sk_buff *skb,
49
					struct sk_buff *skb,
50
					struct ieee80211_rx_stats *rx_stats)
50
					struct rtl8187se_rx_stats *rx_stats)
51
{
51
{
52
	struct ieee80211_hdr_4addr *hdr =
52
	struct ieee80211_hdr_4addr *hdr =
53
		(struct ieee80211_hdr_4addr *)skb->data;
53
		(struct ieee80211_hdr_4addr *)skb->data;
Lines 205-218 static int ieee80211_frag_cache_invalida Link Here
205
205
206
206
207
207
208
/* ieee80211_rx_frame_mgtmt
208
/* rtl8187se_rx_frame_mgtmt
209
 *
209
 *
210
 * Responsible for handling management control frames
210
 * Responsible for handling management control frames
211
 *
211
 *
212
 * Called by ieee80211_rx */
212
 * Called by rtl8187se_rx */
213
static inline int
213
static inline int
214
ieee80211_rx_frame_mgmt(struct ieee80211_device *ieee, struct sk_buff *skb,
214
rtl8187se_rx_frame_mgmt(struct ieee80211_device *ieee, struct sk_buff *skb,
215
			struct ieee80211_rx_stats *rx_stats, u16 type,
215
			struct rtl8187se_rx_stats *rx_stats, u16 type,
216
			u16 stype)
216
			u16 stype)
217
{
217
{
218
	struct ieee80211_hdr_4addr *hdr;
218
	struct ieee80211_hdr_4addr *hdr;
Lines 225-231 ieee80211_rx_frame_mgmt(struct ieee80211 Link Here
225
	 * response parser uses it
225
	 * response parser uses it
226
	 */
226
	 */
227
	rx_stats->len = skb->len;
227
	rx_stats->len = skb->len;
228
	ieee80211_rx_mgt(ieee, (struct ieee80211_hdr_4addr *)skb->data,
228
	rtl8187se_rx_mgt(ieee, (struct ieee80211_hdr_4addr *)skb->data,
229
			 rx_stats);
229
			 rx_stats);
230
230
231
	if((ieee->state == IEEE80211_LINKED)&&(memcmp(hdr->addr3,ieee->current_network.bssid,ETH_ALEN))) {
231
	if((ieee->state == IEEE80211_LINKED)&&(memcmp(hdr->addr3,ieee->current_network.bssid,ETH_ALEN))) {
Lines 233-239 ieee80211_rx_frame_mgmt(struct ieee80211 Link Here
233
		return 0;
233
		return 0;
234
	}
234
	}
235
235
236
	ieee80211_rx_frame_softmac(ieee, skb, rx_stats, type, stype);
236
	rtl8187se_rx_frame_softmac(ieee, skb, rx_stats, type, stype);
237
237
238
	dev_kfree_skb_any(skb);
238
	dev_kfree_skb_any(skb);
239
239
Lines 252-258 static unsigned char bridge_tunnel_heade Link Here
252
{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 };
252
{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 };
253
/* No encapsulation header if EtherType < 0x600 (=length) */
253
/* No encapsulation header if EtherType < 0x600 (=length) */
254
254
255
/* Called by ieee80211_rx_frame_decrypt */
255
/* Called by rtl8187se_rx_frame_decrypt */
256
static int ieee80211_is_eapol_frame(struct ieee80211_device *ieee,
256
static int ieee80211_is_eapol_frame(struct ieee80211_device *ieee,
257
				    struct sk_buff *skb, size_t hdrlen)
257
				    struct sk_buff *skb, size_t hdrlen)
258
{
258
{
Lines 293-301 static int ieee80211_is_eapol_frame(stru Link Here
293
	return 0;
293
	return 0;
294
}
294
}
295
295
296
/* Called only as a tasklet (software IRQ), by ieee80211_rx */
296
/* Called only as a tasklet (software IRQ), by rtl8187se_rx */
297
static inline int
297
static inline int
298
ieee80211_rx_frame_decrypt(struct ieee80211_device* ieee, struct sk_buff *skb,
298
rtl8187se_rx_frame_decrypt(struct ieee80211_device* ieee, struct sk_buff *skb,
299
			   struct ieee80211_crypt_data *crypt)
299
			   struct ieee80211_crypt_data *crypt)
300
{
300
{
301
	struct ieee80211_hdr_4addr *hdr;
301
	struct ieee80211_hdr_4addr *hdr;
Lines 338-346 ieee80211_rx_frame_decrypt(struct ieee80 Link Here
338
}
338
}
339
339
340
340
341
/* Called only as a tasklet (software IRQ), by ieee80211_rx */
341
/* Called only as a tasklet (software IRQ), by rtl8187se_rx */
342
static inline int
342
static inline int
343
ieee80211_rx_frame_decrypt_msdu(struct ieee80211_device* ieee, struct sk_buff *skb,
343
rtl8187se_rx_frame_decrypt_msdu(struct ieee80211_device* ieee, struct sk_buff *skb,
344
			     int keyidx, struct ieee80211_crypt_data *crypt)
344
			     int keyidx, struct ieee80211_crypt_data *crypt)
345
{
345
{
346
	struct ieee80211_hdr_4addr *hdr;
346
	struct ieee80211_hdr_4addr *hdr;
Lines 470-477 drop: Link Here
470
/* All received frames are sent to this function. @skb contains the frame in
470
/* All received frames are sent to this function. @skb contains the frame in
471
 * IEEE 802.11 format, i.e., in the format it was sent over air.
471
 * IEEE 802.11 format, i.e., in the format it was sent over air.
472
 * This function is called only as a tasklet (software IRQ). */
472
 * This function is called only as a tasklet (software IRQ). */
473
int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
473
int rtl8187se_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
474
		 struct ieee80211_rx_stats *rx_stats)
474
		 struct rtl8187se_rx_stats *rx_stats)
475
{
475
{
476
	struct net_device *dev = ieee->dev;
476
	struct net_device *dev = ieee->dev;
477
	//struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
477
	//struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
Lines 567-573 int ieee80211_rx(struct ieee80211_device Link Here
567
567
568
568
569
	if (type == IEEE80211_FTYPE_MGMT) {
569
	if (type == IEEE80211_FTYPE_MGMT) {
570
		if (ieee80211_rx_frame_mgmt(ieee, skb, rx_stats, type, stype))
570
		if (rtl8187se_rx_frame_mgmt(ieee, skb, rx_stats, type, stype))
571
			goto rx_dropped;
571
			goto rx_dropped;
572
		else
572
		else
573
			goto rx_exit;
573
			goto rx_exit;
Lines 628-634 int ieee80211_rx(struct ieee80211_device Link Here
628
	/* skb: hdr + (possibly fragmented, possibly encrypted) payload */
628
	/* skb: hdr + (possibly fragmented, possibly encrypted) payload */
629
629
630
	if (ieee->host_decrypt && (fc & IEEE80211_FCTL_WEP) &&
630
	if (ieee->host_decrypt && (fc & IEEE80211_FCTL_WEP) &&
631
	    (keyidx = ieee80211_rx_frame_decrypt(ieee, skb, crypt)) < 0)
631
	    (keyidx = rtl8187se_rx_frame_decrypt(ieee, skb, crypt)) < 0)
632
		goto rx_dropped;
632
		goto rx_dropped;
633
633
634
	hdr = (struct ieee80211_hdr_4addr *)skb->data;
634
	hdr = (struct ieee80211_hdr_4addr *)skb->data;
Lines 691-697 int ieee80211_rx(struct ieee80211_device Link Here
691
	/* skb: hdr + (possible reassembled) full MSDU payload; possibly still
691
	/* skb: hdr + (possible reassembled) full MSDU payload; possibly still
692
	 * encrypted/authenticated */
692
	 * encrypted/authenticated */
693
	if (ieee->host_decrypt && (fc & IEEE80211_FCTL_WEP) &&
693
	if (ieee->host_decrypt && (fc & IEEE80211_FCTL_WEP) &&
694
	    ieee80211_rx_frame_decrypt_msdu(ieee, skb, keyidx, crypt))
694
	    rtl8187se_rx_frame_decrypt_msdu(ieee, skb, keyidx, crypt))
695
		goto rx_dropped;
695
		goto rx_dropped;
696
696
697
	hdr = (struct ieee80211_hdr_4addr *)skb->data;
697
	hdr = (struct ieee80211_hdr_4addr *)skb->data;
Lines 914-920 inline int ieee80211_network_init( Link Here
914
	struct ieee80211_device *ieee,
914
	struct ieee80211_device *ieee,
915
	struct ieee80211_probe_response *beacon,
915
	struct ieee80211_probe_response *beacon,
916
	struct ieee80211_network *network,
916
	struct ieee80211_network *network,
917
	struct ieee80211_rx_stats *stats)
917
	struct rtl8187se_rx_stats *stats)
918
{
918
{
919
#ifdef CONFIG_IEEE80211_DEBUG
919
#ifdef CONFIG_IEEE80211_DEBUG
920
	char rates_str[64];
920
	char rates_str[64];
Lines 1251-1257 inline void update_network(struct ieee80 Link Here
1251
		noise = (dst->stats.noise * 5 + src->stats.noise)/6;
1251
		noise = (dst->stats.noise * 5 + src->stats.noise)/6;
1252
        //if(strcmp(dst->ssid, "linksys_lzm000") == 0)
1252
        //if(strcmp(dst->ssid, "linksys_lzm000") == 0)
1253
//	printk("ssid:%s, quality:%d, signal:%d\n", dst->ssid, quality, signal);
1253
//	printk("ssid:%s, quality:%d, signal:%d\n", dst->ssid, quality, signal);
1254
	memcpy(&dst->stats, &src->stats, sizeof(struct ieee80211_rx_stats));
1254
	memcpy(&dst->stats, &src->stats, sizeof(struct rtl8187se_rx_stats));
1255
	dst->stats.signalstrength = quality;
1255
	dst->stats.signalstrength = quality;
1256
	dst->stats.signal = signal;
1256
	dst->stats.signal = signal;
1257
//	printk("==================>stats.signal is %d\n",dst->stats.signal);
1257
//	printk("==================>stats.signal is %d\n",dst->stats.signal);
Lines 1326-1332 inline void update_network(struct ieee80 Link Here
1326
inline void ieee80211_process_probe_response(
1326
inline void ieee80211_process_probe_response(
1327
	struct ieee80211_device *ieee,
1327
	struct ieee80211_device *ieee,
1328
	struct ieee80211_probe_response *beacon,
1328
	struct ieee80211_probe_response *beacon,
1329
	struct ieee80211_rx_stats *stats)
1329
	struct rtl8187se_rx_stats *stats)
1330
{
1330
{
1331
	struct ieee80211_network network;
1331
	struct ieee80211_network network;
1332
	struct ieee80211_network *target;
1332
	struct ieee80211_network *target;
Lines 1524-1532 inline void ieee80211_process_probe_resp Link Here
1524
	spin_unlock_irqrestore(&ieee->lock, flags);
1524
	spin_unlock_irqrestore(&ieee->lock, flags);
1525
}
1525
}
1526
1526
1527
void ieee80211_rx_mgt(struct ieee80211_device *ieee,
1527
void rtl8187se_rx_mgt(struct ieee80211_device *ieee,
1528
		      struct ieee80211_hdr_4addr *header,
1528
		      struct ieee80211_hdr_4addr *header,
1529
		      struct ieee80211_rx_stats *stats)
1529
		      struct rtl8187se_rx_stats *stats)
1530
{
1530
{
1531
	switch (WLAN_FC_GET_STYPE(header->frame_ctl)) {
1531
	switch (WLAN_FC_GET_STYPE(header->frame_ctl)) {
1532
1532
(-)linux-2.6.32-gentoo/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c (-11 / +11 lines)
Lines 1532-1538 static inline u16 assoc_parse(struct sk_ Link Here
1532
}
1532
}
1533
1533
1534
static inline void
1534
static inline void
1535
ieee80211_rx_probe_rq(struct ieee80211_device *ieee, struct sk_buff *skb)
1535
rtl8187se_rx_probe_rq(struct ieee80211_device *ieee, struct sk_buff *skb)
1536
{
1536
{
1537
	u8 dest[ETH_ALEN];
1537
	u8 dest[ETH_ALEN];
1538
1538
Lines 1547-1553 ieee80211_rx_probe_rq(struct ieee80211_d Link Here
1547
}
1547
}
1548
1548
1549
inline void
1549
inline void
1550
ieee80211_rx_auth_rq(struct ieee80211_device *ieee, struct sk_buff *skb)
1550
rtl8187se_rx_auth_rq(struct ieee80211_device *ieee, struct sk_buff *skb)
1551
{
1551
{
1552
	u8 dest[ETH_ALEN];
1552
	u8 dest[ETH_ALEN];
1553
	int status;
1553
	int status;
Lines 1562-1568 ieee80211_rx_auth_rq(struct ieee80211_de Link Here
1562
}
1562
}
1563
1563
1564
 inline void
1564
 inline void
1565
ieee80211_rx_assoc_rq(struct ieee80211_device *ieee, struct sk_buff *skb)
1565
rtl8187se_rx_assoc_rq(struct ieee80211_device *ieee, struct sk_buff *skb)
1566
{
1566
{
1567
1567
1568
	u8 dest[ETH_ALEN];
1568
	u8 dest[ETH_ALEN];
Lines 1765-1772 void ieee80211_ps_tx_ack(struct ieee8021 Link Here
1765
}
1765
}
1766
1766
1767
inline int
1767
inline int
1768
ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
1768
rtl8187se_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
1769
			struct ieee80211_rx_stats *rx_stats, u16 type,
1769
			struct rtl8187se_rx_stats *rx_stats, u16 type,
1770
			u16 stype)
1770
			u16 stype)
1771
{
1771
{
1772
	struct ieee80211_hdr_3addr *header = (struct ieee80211_hdr_3addr *) skb->data;
1772
	struct ieee80211_hdr_3addr *header = (struct ieee80211_hdr_3addr *) skb->data;
Lines 1880-1886 associate_complete: Link Here
1880
			if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
1880
			if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
1881
				ieee->iw_mode == IW_MODE_MASTER)
1881
				ieee->iw_mode == IW_MODE_MASTER)
1882
1882
1883
				ieee80211_rx_assoc_rq(ieee, skb);
1883
				rtl8187se_rx_assoc_rq(ieee, skb);
1884
			break;
1884
			break;
1885
1885
1886
		case IEEE80211_STYPE_AUTH:
1886
		case IEEE80211_STYPE_AUTH:
Lines 1907-1913 associate_complete: Link Here
1907
						}
1907
						}
1908
1908
1909
					}else if (ieee->iw_mode == IW_MODE_MASTER){
1909
					}else if (ieee->iw_mode == IW_MODE_MASTER){
1910
						ieee80211_rx_auth_rq(ieee, skb);
1910
						rtl8187se_rx_auth_rq(ieee, skb);
1911
					}
1911
					}
1912
				}
1912
				}
1913
			break;
1913
			break;
Lines 1919-1925 associate_complete: Link Here
1919
				ieee->iw_mode == IW_MODE_MASTER) &&
1919
				ieee->iw_mode == IW_MODE_MASTER) &&
1920
				ieee->state == IEEE80211_LINKED))
1920
				ieee->state == IEEE80211_LINKED))
1921
1921
1922
				ieee80211_rx_probe_rq(ieee, skb);
1922
				rtl8187se_rx_probe_rq(ieee, skb);
1923
			break;
1923
			break;
1924
1924
1925
		case IEEE80211_STYPE_DISASSOC:
1925
		case IEEE80211_STYPE_DISASSOC:
Lines 2047-2053 void ieee80211_reset_queue(struct ieee80 Link Here
2047
2047
2048
}
2048
}
2049
2049
2050
void ieee80211_wake_queue(struct ieee80211_device *ieee)
2050
void rtl8187se_wake_queue(struct ieee80211_device *ieee)
2051
{
2051
{
2052
2052
2053
	unsigned long flags;
2053
	unsigned long flags;
Lines 2071-2077 void ieee80211_wake_queue(struct ieee802 Link Here
2071
			else
2071
			else
2072
				ieee->seq_ctrl[0]++;
2072
				ieee->seq_ctrl[0]++;
2073
2073
2074
			//printk(KERN_ALERT "ieee80211_wake_queue \n");
2074
			//printk(KERN_ALERT "rtl8187se_wake_queue \n");
2075
			ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate);
2075
			ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate);
2076
			dev_kfree_skb_any(skb);//edit by thomas
2076
			dev_kfree_skb_any(skb);//edit by thomas
2077
		}
2077
		}
Lines 2089-2095 exit : Link Here
2089
}
2089
}
2090
2090
2091
2091
2092
void ieee80211_stop_queue(struct ieee80211_device *ieee)
2092
void rtl8187se_stop_queue(struct ieee80211_device *ieee)
2093
{
2093
{
2094
	//unsigned long flags;
2094
	//unsigned long flags;
2095
	//spin_lock_irqsave(&ieee->lock,flags);
2095
	//spin_lock_irqsave(&ieee->lock,flags);
(-)linux-2.6.32-gentoo/drivers/staging/rtl8187se/r8180_core.c (-5 / +5 lines)
Lines 1546-1552 void rtl8180_rx(struct net_device *dev) Link Here
1546
	bool	bCckRate = false;
1546
	bool	bCckRate = false;
1547
	u8     RSSI = 0;
1547
	u8     RSSI = 0;
1548
	long	SignalStrengthIndex = 0;
1548
	long	SignalStrengthIndex = 0;
1549
	struct ieee80211_rx_stats stats = {
1549
	struct rtl8187se_rx_stats stats = {
1550
		.signal = 0,
1550
		.signal = 0,
1551
		.noise = -98,
1551
		.noise = -98,
1552
		.rate = 0,
1552
		.rate = 0,
Lines 1830-1836 void rtl8180_rx(struct net_device *dev) Link Here
1830
			if(priv->rx_skb->len > 4)
1830
			if(priv->rx_skb->len > 4)
1831
				skb_trim(priv->rx_skb,priv->rx_skb->len-4);
1831
				skb_trim(priv->rx_skb,priv->rx_skb->len-4);
1832
#ifndef RX_DONT_PASS_UL
1832
#ifndef RX_DONT_PASS_UL
1833
			if(!ieee80211_rx(priv->ieee80211,
1833
			if(!rtl8187se_rx(priv->ieee80211,
1834
					 priv->rx_skb, &stats)){
1834
					 priv->rx_skb, &stats)){
1835
#endif // RX_DONT_PASS_UL
1835
#endif // RX_DONT_PASS_UL
1836
1836
Lines 1936-1946 rate) Link Here
1936
	if (!check_nic_enought_desc(dev, priority)){
1936
	if (!check_nic_enought_desc(dev, priority)){
1937
		DMESGW("Error: no descriptor left by previous TX (avail %d) ",
1937
		DMESGW("Error: no descriptor left by previous TX (avail %d) ",
1938
			get_curr_tx_free_desc(dev, priority));
1938
			get_curr_tx_free_desc(dev, priority));
1939
		ieee80211_stop_queue(priv->ieee80211);
1939
		rtl8187se_stop_queue(priv->ieee80211);
1940
	}
1940
	}
1941
	rtl8180_tx(dev, skb->data, skb->len, priority, morefrag,0,rate);
1941
	rtl8180_tx(dev, skb->data, skb->len, priority, morefrag,0,rate);
1942
	if (!check_nic_enought_desc(dev, priority))
1942
	if (!check_nic_enought_desc(dev, priority))
1943
		ieee80211_stop_queue(priv->ieee80211);
1943
		rtl8187se_stop_queue(priv->ieee80211);
1944
1944
1945
	spin_unlock_irqrestore(&priv->tx_lock,flags);
1945
	spin_unlock_irqrestore(&priv->tx_lock,flags);
1946
}
1946
}
Lines 4066-4072 void rtl8180_try_wake_queue(struct net_d Link Here
4066
	spin_unlock_irqrestore(&priv->tx_lock,flags);
4066
	spin_unlock_irqrestore(&priv->tx_lock,flags);
4067
4067
4068
	if(enough_desc)
4068
	if(enough_desc)
4069
		ieee80211_wake_queue(priv->ieee80211);
4069
		rtl8187se_wake_queue(priv->ieee80211);
4070
}
4070
}
4071
4071
4072
void rtl8180_tx_isr(struct net_device *dev, int pri,short error)
4072
void rtl8180_tx_isr(struct net_device *dev, int pri,short error)

Return to bug 296920