Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 873068 Details for
Bug 913631
Slow wireless connection using rt2800usb driver (Asus USB-N13 dongle)
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
First patch to apply to ralink drivers
rt5592sta_fix_64bit_3.8.patch (text/plain), 10.98 KB, created by
Stephen So
on 2014-03-11 11:38:16 UTC
(
hide
)
Description:
First patch to apply to ralink drivers
Filename:
MIME Type:
Creator:
Stephen So
Created:
2014-03-11 11:38:16 UTC
Size:
10.98 KB
patch
obsolete
>diff --git a/Makefile b/Makefile >index 533ea7c..9fb31d5 100644 >--- a/Makefile >+++ b/Makefile >@@ -189,11 +189,14 @@ CROSS_COMPILE = mips-wrs-linux-gnu- > endif > > ifeq ($(PLATFORM),PC) >+ifndef KERN_VER >+KERN_VER = $(shell uname -r) >+endif > # Linux 2.6 >-LINUX_SRC = /lib/modules/$(shell uname -r)/build >+LINUX_SRC = /lib/modules/$(KERN_VER)/build > # Linux 2.4 Change to your local setting > #LINUX_SRC = /usr/src/linux-2.4 >-LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/ >+LINUX_SRC_MODULE = /lib/modules/$(KERN_VER)/kernel/drivers/net/wireless/ > CROSS_COMPILE = > endif > >diff --git a/include/os/rt_linux.h b/include/os/rt_linux.h >index 8fe2b16..042b465 100644 >--- a/include/os/rt_linux.h >+++ b/include/os/rt_linux.h >@@ -6,7 +6,7 @@ > * Taiwan, R.O.C. > * > * (c) Copyright 2002-2010, Ralink Technology, Inc. >- * >+ * Portions © 2013 Jesse Crews <jcrews at gridlox dot net> > * This program is free software; you can redistribute it and/or modify * > * it under the terms of the GNU General Public License as published by * > * the Free Software Foundation; either version 2 of the License, or * >@@ -996,15 +996,15 @@ void linux_pci_unmap_single(void *handle, ra_dma_addr_t dma_addr, size_t size, i > (RTPKT_TO_OSPKT(_pkt)->len) = (_len) > > #define GET_OS_PKT_DATATAIL(_pkt) \ >- (RTPKT_TO_OSPKT(_pkt)->tail) >+ ((unsigned char*)skb_tail_pointer(RTPKT_TO_OSPKT(_pkt))) > #define SET_OS_PKT_DATATAIL(_pkt, _start, _len) \ >- ((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len)) >+ (skb_set_tail_pointer((RTPKT_TO_OSPKT(_pkt)), (_len))) > > #define GET_OS_PKT_HEAD(_pkt) \ > (RTPKT_TO_OSPKT(_pkt)->head) > > #define GET_OS_PKT_END(_pkt) \ >- (RTPKT_TO_OSPKT(_pkt)->end) >+ ((unsigned char*)skb_end_pointer(RTPKT_TO_OSPKT(_pkt))) > > #define GET_OS_PKT_NETDEV(_pkt) \ > (RTPKT_TO_OSPKT(_pkt)->dev) >diff --git a/os/linux/Makefile.4 b/os/linux/Makefile.4 >index 2db303c..8564ce2 100644 >--- a/os/linux/Makefile.4 >+++ b/os/linux/Makefile.4 >@@ -9,6 +9,9 @@ DAT_FILE_NAME = RT$(MODULE_DAT)STA.dat > endif > #endif // CONFIG_STA_SUPPORT // > >+ifndef KERN_VER >+KERN_VER = $(shell uname -r) >+endif > > > OBJ := $(MOD_NAME).o >@@ -280,12 +283,12 @@ install: > cp $(RT28xx_DIR)/$(DAT_FILE_NAME) $(DAT_PATH)/. > install -d $(LINUX_SRC_MODULE) > install -m 644 -c $(addsuffix .o,$(MOD_NAME)) $(LINUX_SRC_MODULE) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > uninstall: > # rm -rf $(DAT_PATH) > rm -rf $(addprefix $(LINUX_SRC_MODULE),$(addsuffix .o,$(MOD_NAME))) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > # Declare the contents of the .PHONY variable as phony. We keep that > # information in a variable so we can use it in if_changed and friends. >diff --git a/os/linux/Makefile.4.netif b/os/linux/Makefile.4.netif >index c8cc93c..c35e5cc 100644 >--- a/os/linux/Makefile.4.netif >+++ b/os/linux/Makefile.4.netif >@@ -8,6 +8,10 @@ endif > #endif // CONFIG_STA_SUPPORT // > > >+ifndef KERN_VER >+KERN_VER = $(shell uname -r) >+endif >+ > OBJ := $(MOD_NAME).o > > >@@ -94,11 +98,11 @@ endif > install: > install -d $(LINUX_SRC_MODULE) > install -m 644 -c $(addsuffix .o,$(MOD_NAME)) $(LINUX_SRC_MODULE) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > uninstall: > rm -rf $(addprefix $(LINUX_SRC_MODULE),$(addsuffix .o,$(MOD_NAME))) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > # Declare the contents of the .PHONY variable as phony. We keep that > # # information in a variable so we can use it in if_changed and friends. >diff --git a/os/linux/Makefile.4.util b/os/linux/Makefile.4.util >index 69e401c..77904e0 100644 >--- a/os/linux/Makefile.4.util >+++ b/os/linux/Makefile.4.util >@@ -7,6 +7,9 @@ MOD_NAME = rtutil$(MODULE)sta > endif > #endif // CONFIG_STA_SUPPORT // > >+ifndef KERN_VER >+KERN_VER = $(shell uname -r) >+endif > > OBJ := $(MOD_NAME).o > >@@ -65,11 +68,11 @@ endif > install: > install -d $(LINUX_SRC_MODULE) > install -m 644 -c $(addsuffix .o,$(MOD_NAME)) $(LINUX_SRC_MODULE) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > uninstall: > rm -rf $(addprefix $(LINUX_SRC_MODULE),$(addsuffix .o,$(MOD_NAME))) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > # Declare the contents of the .PHONY variable as phony. We keep that > # # information in a variable so we can use it in if_changed and friends. >diff --git a/os/linux/Makefile.6 b/os/linux/Makefile.6 >index 28c5530..339c941 100644 >--- a/os/linux/Makefile.6 >+++ b/os/linux/Makefile.6 >@@ -9,6 +9,9 @@ DAT_FILE_NAME = RT$(CHIPSET_DAT)STA.dat > endif > #endif // CONFIG_STA_SUPPORT // > >+ifndef KERN_VER >+KERN_VER = $(shell uname -r) >+endif > > obj-m := $(MOD_NAME).o > >@@ -297,12 +300,12 @@ install: > cp $(RT28xx_DIR)/$(DAT_FILE_NAME) $(DAT_PATH)/. > install -d $(LINUX_SRC_MODULE) > install -m 644 -c $(addsuffix .ko,$(MOD_NAME)) $(LINUX_SRC_MODULE) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > uninstall: > # rm -rf $(DAT_PATH) > rm -rf $(addprefix $(LINUX_SRC_MODULE),$(addsuffix .ko,$(MOD_NAME))) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > # Declare the contents of the .PHONY variable as phony. We keep that > # information in a variable so we can use it in if_changed and friends. >diff --git a/os/linux/Makefile.6.netif b/os/linux/Makefile.6.netif >index 968165d..1a92a39 100644 >--- a/os/linux/Makefile.6.netif >+++ b/os/linux/Makefile.6.netif >@@ -7,6 +7,9 @@ MOD_NAME = rtnet$(MODULE)sta > endif > #endif // CONFIG_STA_SUPPORT // > >+ifndef KERN_VER >+KERN_VER = $(shell uname -r) >+endif > > obj-m := $(MOD_NAME).o > >@@ -90,8 +93,8 @@ endif > install: > install -d $(LINUX_SRC_MODULE) > install -m 644 -c $(addsuffix .ko,$(MOD_NAME)) $(LINUX_SRC_MODULE) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > uninstall: > rm -rf $(addprefix $(LINUX_SRC_MODULE),$(addsuffix .ko,$(MOD_NAME))) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} >diff --git a/os/linux/Makefile.6.util b/os/linux/Makefile.6.util >index 7510db6..e43fe5f 100644 >--- a/os/linux/Makefile.6.util >+++ b/os/linux/Makefile.6.util >@@ -7,6 +7,9 @@ MOD_NAME = rtutil$(MODULE)sta > endif > #endif // CONFIG_STA_SUPPORT // > >+ifndef KERN_VER >+KERN_VER = $(shell uname -r) >+endif > > obj-m := $(MOD_NAME).o > >@@ -50,8 +53,8 @@ endif > install: > install -d $(LINUX_SRC_MODULE) > install -m 644 -c $(addsuffix .ko,$(MOD_NAME)) $(LINUX_SRC_MODULE) >- /sbin/depmod -a ${shell uname -r} >+ /sbin/depmod -a ${KERN_VER} > > uninstall: > rm -rf $(addprefix $(LINUX_SRC_MODULE),$(addsuffix .ko,$(MOD_NAME))) >- /sbin/depmod -a ${shell uname -r} >\ No newline at end of file >+ /sbin/depmod -a ${KERN_VER} >diff --git a/os/linux/pci_main_dev.c b/os/linux/pci_main_dev.c >index ebd3e57..6c17a67 100644 >--- a/os/linux/pci_main_dev.c >+++ b/os/linux/pci_main_dev.c >@@ -6,7 +6,7 @@ > * Taiwan, R.O.C. > * > * (c) Copyright 2002-2010, Ralink Technology, Inc. >- * >+ * Portions © 2013, Jesse Crews <jcrews at gridlox dot net> > * This program is free software; you can redistribute it and/or modify * > * it under the terms of the GNU General Public License as published by * > * the Free Software Foundation; either version 2 of the License, or * >@@ -39,8 +39,14 @@ > /*extern int rt28xx_close(IN struct net_device *net_dev); */ > /*extern int rt28xx_open(struct net_device *net_dev); */ > >+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) >+static VOID rt2860_remove_one(struct pci_dev *pci_dev); >+static INT rt2860_probe(struct pci_dev *pci_dev, const struct pci_device_id *ent); >+#else > static VOID __devexit rt2860_remove_one(struct pci_dev *pci_dev); > static INT __devinit rt2860_probe(struct pci_dev *pci_dev, const struct pci_device_id *ent); >+#endif >+ > static void __exit rt2860_cleanup_module(void); > static int __init rt2860_init_module(void); > >@@ -59,7 +65,11 @@ static int rt2860_resume(struct pci_dev *pci_dev); > /* */ > /* Ralink PCI device table, include all supported chipsets */ > /* */ >+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) >+static struct pci_device_id rt2860_pci_tbl[] = >+#else > static struct pci_device_id rt2860_pci_tbl[] __devinitdata = >+#endif > { > #ifdef RT5592 > {PCI_DEVICE(NIC_PCI_VENDOR_ID, NIC5592_PCIe_DEVICE_ID)}, >@@ -86,11 +96,13 @@ static struct pci_driver rt2860_driver = > name: RTMP_DRV_NAME, > id_table: rt2860_pci_tbl, > probe: rt2860_probe, >-#if LINUX_VERSION_CODE >= 0x20412 >+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) /* 3.8 check */ >+#if LINUX_VERSION_CODE >= 0x20412 > remove: __devexit_p(rt2860_remove_one), > #else > remove: __devexit(rt2860_remove_one), > #endif >+#endif /* 3.8 check */ > > #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) > #ifdef CONFIG_PM >@@ -291,7 +303,11 @@ module_exit(rt2860_cleanup_module); > /* */ > /* PCI device probe & initialization function */ > /* */ >+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) >+static INT rt2860_probe( >+#else > static INT __devinit rt2860_probe( >+#endif > IN struct pci_dev *pci_dev, > IN const struct pci_device_id *pci_id) > { >@@ -461,8 +477,11 @@ err_out: > return -ENODEV; /* probe fail */ > } > >- >+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) >+static VOID rt2860_remove_one( >+#else > static VOID __devexit rt2860_remove_one( >+#endif > IN struct pci_dev *pci_dev) > { > PNET_DEV net_dev = pci_get_drvdata(pci_dev); >diff --git a/os/linux/rt_linux.c b/os/linux/rt_linux.c >index e7c8084..9dfebff 100644 >--- a/os/linux/rt_linux.c >+++ b/os/linux/rt_linux.c >@@ -6,7 +6,7 @@ > * Taiwan, R.O.C. > * > * (c) Copyright 2002-2010, Ralink Technology, Inc. >- * >+ * Portions © Jesse Crews <jcrews at gridlox dot net> > * This program is free software; you can redistribute it and/or modify * > * it under the terms of the GNU General Public License as published by * > * the Free Software Foundation; either version 2 of the License, or * >@@ -502,9 +502,9 @@ PNDIS_PACKET duplicate_pkt( > MEM_DBG_PKT_ALLOC_INC(skb); > > skb_reserve(skb, 2); >- NdisMoveMemory(skb->tail, pHeader802_3, HdrLen); >+ NdisMoveMemory((unsigned char*)skb_tail_pointer(skb), pHeader802_3, HdrLen); > skb_put(skb, HdrLen); >- NdisMoveMemory(skb->tail, pData, DataSize); >+ NdisMoveMemory((unsigned char*)skb_tail_pointer(skb), pData, DataSize); > skb_put(skb, DataSize); > skb->dev = pNetDev; /*get_netdev_from_bssid(pAd, FromWhichBSSID); */ > pPacket = OSPKT_TO_RTPKT(skb); >@@ -656,7 +656,7 @@ PNDIS_PACKET ClonePacket( > pClonedPkt->dev = pRxPkt->dev; > pClonedPkt->data = pData; > pClonedPkt->len = DataSize; >- pClonedPkt->tail = pClonedPkt->data + pClonedPkt->len; >+ skb_set_tail_pointer(pClonedPkt, DataSize); > ASSERT(DataSize < 1530); > } > return pClonedPkt; >@@ -702,7 +702,7 @@ void wlan_802_11_to_802_3_packet( > pOSPkt->dev = pNetDev; > pOSPkt->data = pData; > pOSPkt->len = DataSize; >- pOSPkt->tail = pOSPkt->data + pOSPkt->len; >+ skb_set_tail_pointer(pOSPkt, DataSize); > > /* */ > /* copy 802.3 header */ >@@ -4933,7 +4933,7 @@ Note: > */ > VOID RtmpOsPktTailAdjust(IN PNDIS_PACKET pNetPkt, > IN UINT removedTagLen) { >- OS_PKT_TAIL_ADJUST(pNetPkt, removedTagLen); >+ skb_set_tail_pointer(pNetPkt, pNetPkt->len - removedTagLen) > } > > /* >diff --git a/tools/bin2h b/tools/bin2h >index 25d0555..6085d0b 100755 >Binary files a/tools/bin2h and b/tools/bin2h differ
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 913631
:
742693
|
783339
|
783470
|
791741
|
812416
| 873068 |
873069