summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ipv6: RTAX_FEATURE_ALLFRAG causes inefficient TCP segment sizingEric Dumazet2012-04-274-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quoting Tore Anderson from : https://bugzilla.kernel.org/show_bug.cgi?id=42572 When RTAX_FEATURE_ALLFRAG is set on a route, the effective TCP segment size does not take into account the size of the IPv6 Fragmentation header that needs to be included in outbound packets, causing every transmitted TCP segment to be fragmented across two IPv6 packets, the latter of which will only contain 8 bytes of actual payload. RTAX_FEATURE_ALLFRAG is typically set on a route in response to receving a ICMPv6 Packet Too Big message indicating a Path MTU of less than 1280 bytes. 1280 bytes is the minimum IPv6 MTU, however ICMPv6 PTBs with MTU < 1280 are still valid, in particular when an IPv6 packet is sent to an IPv4 destination through a stateless translator. Any ICMPv4 Need To Fragment packets originated from the IPv4 part of the path will be translated to ICMPv6 PTB which may then indicate an MTU of less than 1280. The Linux kernel refuses to reduce the effective MTU to anything below 1280 bytes, instead it sets it to exactly 1280 bytes, and RTAX_FEATURE_ALLFRAG is also set. However, the TCP segment size appears to be set to 1240 bytes (1280 Path MTU - 40 bytes of IPv6 header), instead of 1232 (additionally taking into account the 8 bytes required by the IPv6 Fragmentation extension header). This in turn results in rather inefficient transmission, as every transmitted TCP segment now is split in two fragments containing 1232+8 bytes of payload. After this patch, all the outgoing packets that includes a Fragmentation header all are "atomic" or "non-fragmented" fragments, i.e., they both have Offset=0 and More Fragments=0. With help from David S. Miller Reported-by: Tore Anderson <tore@fud.no> Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Maciej Żenczykowski <maze@google.com> Cc: Tom Herbert <therbert@google.com> Tested-by: Tore Anderson <tore@fud.no> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'for-davem' of ↵David S. Miller2012-04-26123-2565/+3467
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
| * Merge branch 'master' of ↵John W. Linville2012-04-26123-2565/+3467
| |\ | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem Conflicts: drivers/net/wireless/iwlwifi/iwl-testmode.c
| | * mac80211: Adds clean sdata helperAndrei Emeltchenko2012-04-242-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | Adds hepler to clean sdata ieee80211_clean_sdata similar way as ieee80211_setup_sdata is implemented. The function will be used by other interfaces later. Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k: Fix IDLE PowersaveSujith Manoharan2012-04-241-17/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * PS_WAIT_FOR_TX_ACK is used in network-sleep mode and checking it for handling IDLE transitions is incorrect. Fix this. * RX PCU/DMA engines have to be stopped before setting the chip into full-sleep mode - otherwise the chip becomes mute. * Make things a bit clear by checking explicitly for network-sleep mode in the tx() routine and add a couple of debug statements to aid PS debugging. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * mac80211: fix num_mcast_sta counting issuesFelix Fietkau2012-04-242-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moving a STA to an AP VLAN prevents num_mcast_sta from being decremented once the STA leaves, because sta->sdata changes. Fix this by checking for AP VLANs as well. Also exclude 4-addr VLAN stations from num_mcast_sta - remote 4-addr stations ignore 3-address multicast frames anyway. In a typical bridge configuration they receive the same packets as 4-address unicast. This patch also fixes clearing the sdata->u.vlan.sta pointer when the STA is removed from a 4-addr VLAN. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * mac80211: rename AP variable num_sta_authorized to num_mcast_staFelix Fietkau2012-04-244-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | It is only used to test for BSS multicast receivers. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Reviewed-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * mac80211: check for non-managed interfaceWey-Yi Guy2012-04-241-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Average beacon signal only keep tracked by managed interface, give warning and return 0 for the others. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * iwlwifi: use new mac80211 queue schemeJohannes Berg2012-04-234-74/+66
| | | | | | | | | | | | | | | Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: clean up module parametersJohannes Berg2012-04-2317-124/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For now at least, all module parameters should be with the core functionality, so move them there, while at it rename to iwlwifi_mod_params. Also rename iwl-shared.h to iwl-modparams.h to reflect the real contents. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: revert workaround to restore 1000 rx throughputDon Fry2012-04-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | A workaround in commit c0486b7ccc5 resulted in a 40% drop in receive throughput in order to fix a transmit problem. The transmit problem no longer occurs, so restore the receive throughput. Signed-off-by: Don Fry <donald.h.fry@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: use direct calls for transport freeJohannes Berg2012-04-234-28/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the transport allocates and frees itself in the transport specific code, there's no need for virtual functions for it. Remove the free method and call the correct functions directly. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: clean up some hw file includesJohannes Berg2012-04-234-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't get rid of everything yet due to the BT definitions that I'm not quite sure yet how to handle, but we can get rid of most unneeded includes. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move OTP definesJohannes Berg2012-04-232-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the PCI core shouldn't include the iwl-eeprom.h header file, move the OTP definitions into iwl-agn-hw.h which can be included. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move antenna definitions to configJohannes Berg2012-04-232-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | Since they're used in the config, they should be declared in iwl-config.h. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move eeprom versions to HW filesJohannes Berg2012-04-235-42/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hardware files belong to the core PCI functionality, but the eeprom header file mixes higher-level functionality and the defines, so move out the specific defines and put them into the appropriate HW files instead. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move watchdog definitions to configJohannes Berg2012-04-232-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | Since they're used in the config, they should be declared in iwl-config.h. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move PLCP defines to configJohannes Berg2012-04-232-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | Since they're used in the config, they should be declared in iwl-config.h. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move driver defines to iwl-drv.hJohannes Berg2012-04-234-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | These defines will have to be shared between modules, but they seem better placed in iwl-drv.h than iwl-shared.h. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: remove duplicate iwlagn_mod_params declarationJohannes Berg2012-04-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We only need one declaration, not multiple. Keep the one in iwl-shared.h, which will probably be renamed to iwl-modparams.h at some point in the future. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: remove TX/RX frame statisticsJohannes Berg2012-04-2323-417/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keeping statistics per frame type really isn't very useful, and needs a huge amount of code so remove it. Since that is the only thing in iwl-core.{c,h} now, those files can be killed. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: remove traffic logJohannes Berg2012-04-237-253/+5
| | | | | | | | | | | | | | | | | | | | | This is superseded by tracing and no longer needed. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move iwl_cmd_echo_testJohannes Berg2012-04-233-18/+17
| | | | | | | | | | | | | | | | | | | | | The function can be static with the only user. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move TIME_UNITJohannes Berg2012-04-232-2/+1
| | | | | | | | | | | | | | | | | | | | | We're getting rid of iwl-core.h, move TIME_UNIT out. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: remove bt_siso_mode declarationJohannes Berg2012-04-231-5/+0
| | | | | | | | | | | | | | | | | | | | | That variable doesn't exist anywhere. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: include net/mac80211.h to avoid compiler errorWey-Yi Guy2012-04-231-0/+1
| | | | | | | | | | | | | | | | | | | | | without the include, kernel compiling will fail, but not compat. this patch need to be merge with iwlwifi-clean-up-iwl-shared.h-includes.patch Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: clean up iwl-shared.h includesJohannes Berg2012-04-2311-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That file is now holding just a few defines and the module parameters, so it shouldn't include anything. Make sure the right users include the right files instead. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move iwl_have_debug_levelJohannes Berg2012-04-232-5/+6
| | | | | | | | | | | | | | | | | | | | | This function belongs into the debugging framework. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: move debugfs registration function declarationsJohannes Berg2012-04-232-15/+13
| | | | | | | | | | | | | | | | | | | | | | | | They clearly belong into iwl-agn.h as they have no relation to the (generic) debug logging framework. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: remove debugfs logspamJohannes Berg2012-04-232-56/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There really is no point in printing very verbose error messages when somebody tries to access a debugfs file before it is ready. Or even worse, printing verbose messages when memory allocation fails which *already* prints a huge warning. Remove all IWL_ERR messages from debugfs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: properly set basic ratesJohannes Berg2012-04-234-53/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a long-standing bug: iwlwifi always assumes that the CCK ACK rates are 1 and 2 MBps and the OFDM ACK rates are 6, 12 and 24 MBps. Fix this problem by using the basic rates the AP (or in AP case hostapd) told us to use and add the necessary mandatory rates to the mix. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: Added debugfs calib disabled writeDavid Spinadel2012-04-231-2/+23
| | | | | | | | | | | | | | | | | | | | | Added the option to disable calibration via debugfs. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: provide proper API to disable all interruptsEmmanuel Grumbach2012-04-234-17/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since the op_mode may go away, the transport needs to be able to be told not to update the op_mode at all (even for RF kill). Provide this API and use it in the proper places. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: check RF kill register when interrupts have been disabledEmmanuel Grumbach2012-04-231-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since the interrupts have been disabled, we may have missed an RF kill interrupt. Check the register to be sure the op_mode is in sync. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: enable RF kill interrupt in start_hwEmmanuel Grumbach2012-04-231-0/+3
| | | | | | | | | | | | | | | | | | | | | The op_mode wants to know about changes in HW RF kill state. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: first enable RF kill interrupt, then check registerEmmanuel Grumbach2012-04-231-9/+7
| | | | | | | | | | | | | | | | | | | | | This can solve a race (very unlikely to happen though). Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * iwlwifi: make a static inline to read the RF kill registerEmmanuel Grumbach2012-04-233-8/+10
| | | | | | | | | | | | | | | Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
| | * rt2800: add chipset revision RT5390R supportAnisse Astier2012-04-232-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | About 70% of the chips with revision RT5390R initialize incorrectly, using the auxiliary antenna instead of the main one. The net result is that signal reception is very poor (no AP further than 1M). This chipset differs from RT5390 and RT5390F by its support of hardware antenna diversity. Therefore antenna selection should be done differently, by disabling software features and previously selected antenna. This changeset does just that, and makes all RT5390R work properly. This is based on Ralink's 2012_03_22_RT5572_Linux_STA_v2.6.0.0_DPO driver. Signed-off-by: Anisse Astier <anisse@astier.eu> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * cfg80211: Validate legacy rateset.Bala Shanmugam2012-04-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Legacy rates are not validated while configuring tx rateset using iw. So below cmd is accepted by nl80211. sudo iw wlan2 set bitrates legacy-2.4 1 2 3 Validate legacy rates and return error if any rate in the rateset is not valid. Signed-off-by: Bala Shanmugam <bkamatch@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * mac80211: declare ieee80211_ave_rssi as EXPORTWey-Yi Guy2012-04-232-0/+9
| | | | | | | | | | | | | | | | | | | | | ieee80211_ave_rssi need to be declare as export for driver to use it. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * mac80211: fixup for mesh TSF adjustment latency in Toffset setpointJavier Cardona2012-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The original patch defined the correction margin but did not apply it. Signed-off-by: Shinichi Hotori <hotorinn@gmail.com> Signed-off-by: Yu Niiro <yu.niiro@gmail.com> Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k: extend DFS detector stats in dfs_debugfsZefir Kurtisi2012-04-234-11/+104
| | | | | | | | | | | | | | | | | | | | | | | | Extend debugfs entry for dfs_stats with DFS detection events and shared pool statistics. Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k: don't strip mic on non-encrypted frames in tkipMichael Liang2012-04-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the following bug: in tkip mode, qos-null ps on/off packets are dropped due to incorrect packet length so that ath9k softap can't handle powersave state transition of peer STA correctly. Signed-off-by: Michael Liang <mliang@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtlwifi: rtl8192se: Convert driver to use private dm structLarry Finger2012-04-233-81/+84
| | | | | | | | | | | | | | | | | | | | | Convert driver to use private version of dig_t instead of global version. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtlwifi: rtl8192de: Convert driver to use private dm structsLarry Finger2012-04-233-94/+100
| | | | | | | | | | | | | | | | | | | | | Convert driver to use the private dig_t instead of a global version. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtlwifi: rtl8192c: Convert driver to use private ps_t structLarry Finger2012-04-231-27/+31
| | | | | | | | | | | | | | | | | | | | | Convert driver to use the private instead of global version. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtlwifi: rtl8192c: Convert driver to use private dm structsLarry Finger2012-04-234-112/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | Convert rtl8192c to use the dm_digtable struct in the common header file instead of the global variable. Without this change, every instance of rtl8192ce and rtl8192cu will be using the same global arrays. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtlwifi: Add dm structs to private structureLarry Finger2012-04-231-0/+4
| | | | | | | | | | | | | | | | | | | | | Add the dig_t and ps_t structures to the private variables. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtlwifi: Move dig_t and ps_t structsLarry Finger2012-04-235-159/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move struct definitions for dig_t and ps_t to the common header file. This move is needed to convert these structures from a "per-driver" to a "per-interface" basis. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k_hw: increase tx abort timeout for half/quarter channelsFelix Fietkau2012-04-231-1/+9
| | | | | | | | | | | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
OpenPOWER on IntegriCloud