* Re: [PATCH v2 2/2] mac80211: store tx power value from user to station
From: Ben Greear @ 2017-01-31 19:00 UTC (permalink / raw)
To: Ashok Raj Nagarajan, linux-wireless; +Cc: johannes, arnagara, ath10k
In-Reply-To: <1485888101-23454-2-git-send-email-arnagara@qti.qualcomm.com>
On 01/31/2017 10:41 AM, Ashok Raj Nagarajan wrote:
> This patch introduce a new driver callback drv_sta_set_txpwr. This API will
> copy the transmit power value passed from user space and call the driver
> callback to set the tx power for the station.
>
> Signed-off-by: Ashok Raj Nagarajan <arnagara@qti.qualcomm.com>
> ---
> include/net/mac80211.h | 6 ++++++
> net/mac80211/cfg.c | 7 +++++++
> net/mac80211/driver-ops.c | 21 +++++++++++++++++++++
> net/mac80211/driver-ops.h | 5 +++++
> net/mac80211/trace.h | 27 +++++++++++++++++++++++++++
> 5 files changed, 66 insertions(+)
>
> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
> index 5345d35..e059d5a 100644
> --- a/include/net/mac80211.h
> +++ b/include/net/mac80211.h
> @@ -1777,6 +1777,8 @@ struct ieee80211_sta_rates {
> * This is defined by the spec (IEEE 802.11-2012 section 8.3.2.2 NOTE 2).
> * @support_p2p_ps: indicates whether the STA supports P2P PS mechanism or not.
> * @max_rc_amsdu_len: Maximum A-MSDU size in bytes recommended by rate control.
> + * @txpwr: indicates the tx power, in dBm, to be used when sending data frames
> + * to the STA. Value of 0 means, automatic (default) tx power.
Atheros NICs use 1/2 dBm increments internally, so maybe pass down mBm to the driver so you don't
loose the granularity? (Other NICs may potentially have even finer control.)
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: [PATCH v2 1/2] cfg80211: Add support to set tx power for a station associated
From: Ben Greear @ 2017-01-31 19:06 UTC (permalink / raw)
To: Ashok Raj Nagarajan, linux-wireless; +Cc: johannes, arnagara, ath10k
In-Reply-To: <1485888101-23454-1-git-send-email-arnagara@qti.qualcomm.com>
On 01/31/2017 10:41 AM, Ashok Raj Nagarajan wrote:
> This patch adds support to set transmit power setting type and transmit
> power level attributes to NL80211_CMD_SET_STATION in order to facilitate
> adjusting the transmit power level of a station associated to the AP.
>
> The added attributes allow selection of automatic and limited transmit
> power level, with the level defined in mBm format.
>
> Signed-off-by: Ashok Raj Nagarajan <arnagara@qti.qualcomm.com>
> ---
> v2:
> - refactor the shared code
> - "keep what you had" using STATION_PARAM_APPLY_* BIT
> - feature flag to let the user know if this feature is supported or not (Johannes)
>
> include/net/cfg80211.h | 6 ++++++
> include/uapi/linux/nl80211.h | 15 +++++++++++++
> net/wireless/nl80211.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 71 insertions(+)
>
> diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
> index 814be4b..c989fbd 100644
> --- a/include/net/cfg80211.h
> +++ b/include/net/cfg80211.h
> @@ -808,6 +808,7 @@ enum station_parameters_apply_mask {
> STATION_PARAM_APPLY_UAPSD = BIT(0),
> STATION_PARAM_APPLY_CAPABILITY = BIT(1),
> STATION_PARAM_APPLY_PLINK_STATE = BIT(2),
> + STATION_PARAM_APPLY_STA_TXPOWER = BIT(3),
> };
>
> /**
> @@ -849,6 +850,10 @@ enum station_parameters_apply_mask {
> * @opmode_notif: operating mode field from Operating Mode Notification
> * @opmode_notif_used: information if operating mode field is used
> * @support_p2p_ps: information if station supports P2P PS mechanism
> + * @txpwr: tx power (in mBm) to be used for sending data traffic. If tx power
> + * is not provided, the default per-interface tx power setting will be
> + * overriding. Driver should be picking up the lowest tx power, either tx
> + * power per-interface or per-station.
> */
> struct station_parameters {
> const u8 *supported_rates;
> @@ -876,6 +881,7 @@ struct station_parameters {
> u8 opmode_notif;
> bool opmode_notif_used;
> int support_p2p_ps;
> + unsigned int txpwr;
> };
>
> /**
> diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
> index 6b76e3b..de2f72c 100644
> --- a/include/uapi/linux/nl80211.h
> +++ b/include/uapi/linux/nl80211.h
> @@ -1980,6 +1980,15 @@ enum nl80211_commands {
> * @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also
> * used in various commands/events for specifying the BSSID.
> *
> + * @NL80211_ATTR_STA_TX_POWER_SETTING: Transmit power setting type (u32) for
> + * station associated with the AP. See &enum nl80211_tx_power_setting for
> + * possible values.
> + * @NL80211_ATTR_STA_TX_POWER: Transmit power level (u32) in mBm units. This
> + * allows to set Tx power for a station. If this attribute is not included,
> + * the default per-interface tx power setting will be overriding. Driver
> + * should be picking up the lowest tx power, either tx power per-interface
> + * or per-station.
> + *
> * @NUM_NL80211_ATTR: total number of nl80211_attrs available
> * @NL80211_ATTR_MAX: highest attribute number currently defined
> * @__NL80211_ATTR_AFTER_LAST: internal use
> @@ -2386,6 +2395,9 @@ enum nl80211_attrs {
>
> NL80211_ATTR_BSSID,
>
> + NL80211_ATTR_STA_TX_POWER_SETTING,
> + NL80211_ATTR_STA_TX_POWER,
> +
> /* add attributes here, update the policy in nl80211.c */
>
> __NL80211_ATTR_AFTER_LAST,
> @@ -4697,6 +4709,8 @@ enum nl80211_feature_flags {
> * configuration (AP/mesh) with VHT rates.
> * @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup
> * with user space SME (NL80211_CMD_AUTHENTICATE) in station mode.
> + * @NL80211_EXT_FEATURE_STA_TX_PWR: This driver supports controlling tx power
> + * to a station.
> *
> * @NUM_NL80211_EXT_FEATURES: number of extended features.
> * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
> @@ -4712,6 +4726,7 @@ enum nl80211_ext_feature_index {
> NL80211_EXT_FEATURE_BEACON_RATE_HT,
> NL80211_EXT_FEATURE_BEACON_RATE_VHT,
> NL80211_EXT_FEATURE_FILS_STA,
> + NL80211_EXT_FEATURE_STA_TX_PWR,
>
> /* add new features before the definition below */
> NUM_NL80211_EXT_FEATURES,
> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
> index ef5eff93..ace87de 100644
> --- a/net/wireless/nl80211.c
> +++ b/net/wireless/nl80211.c
> @@ -246,6 +246,8 @@ enum nl80211_multicast_groups {
> [NL80211_ATTR_STA_SUPPORTED_RATES] = { .type = NLA_BINARY,
> .len = NL80211_MAX_SUPP_RATES },
> [NL80211_ATTR_STA_PLINK_ACTION] = { .type = NLA_U8 },
> + [NL80211_ATTR_STA_TX_POWER_SETTING] = { .type = NLA_U32 },
> + [NL80211_ATTR_STA_TX_POWER] = { .type = NLA_U32 },
> [NL80211_ATTR_STA_VLAN] = { .type = NLA_U32 },
> [NL80211_ATTR_MNTR_FLAGS] = { /* NLA_NESTED can't be empty */ },
> [NL80211_ATTR_MESH_ID] = { .type = NLA_BINARY,
> @@ -4548,6 +4550,8 @@ int cfg80211_check_station_change(struct wiphy *wiphy,
> return -EINVAL;
> if (params->sta_modify_mask & STATION_PARAM_APPLY_CAPABILITY)
> return -EINVAL;
> + if (params->sta_modify_mask & STATION_PARAM_APPLY_STA_TXPOWER)
> + return -EINVAL;
Does this mean that we cannot change the tx-power after the station is associated?
Seems like that would be a good limitation to remove if possible!
> if (params->supported_rates)
> return -EINVAL;
> if (params->ext_capab || params->ht_capa || params->vht_capa)
> @@ -4755,6 +4759,40 @@ static int nl80211_set_station_tdls(struct genl_info *info,
> return nl80211_parse_sta_wme(info, params);
> }
>
> +static int nl80211_parse_sta_txpower_setting(struct genl_info *info,
> + struct station_parameters *params)
> +{
> + struct cfg80211_registered_device *rdev = info->user_ptr[0];
> + enum nl80211_tx_power_setting type;
> + int idx;
> +
> + if (!rdev->ops->set_tx_power ||
> + !wiphy_ext_feature_isset(&rdev->wiphy,
> + NL80211_EXT_FEATURE_STA_TX_PWR))
> + return -EOPNOTSUPP;
Maybe always let a user set to default value even if the driver does not
support setting specific values?
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* [PATCH 4.10-rc3 00/13] net: dsa: remove unnecessary phy.h include
From: Russell King - ARM Linux @ 2017-01-31 19:17 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: Andrew Lunn, Anna Schumaker, David S. Miller, Derek Chickles,
Felix Manlunas, Florian Fainelli, J. Bruce Fields, Jeff Layton,
Jiri Slaby, Kalle Valo, Luis R. Rodriguez, Madalin Bucur,
Microchip Linux Driver Support, Nicholas A. Bellinger,
Nick Kossifidis, Nicolas Ferre, Raghu Vatsavayi, Ralf Baechle,
Satanand Burla, Thomas Petazzoni, Timur Tabi, Trond Myklebust,
Vivien Didelot, Woojung Huh
In-Reply-To: <20170118001403.GJ27312@n2100.armlinux.org.uk>
Including phy.h and phy_fixed.h into net/dsa.h causes phy*.h to be an
unnecessary dependency for quite a large amount of the kernel. There's
very little which actually requires definitions from phy.h in net/dsa.h
- the include itself only wants the declaration of a couple of
structures and IFNAMSIZ.
Add linux/if.h for IFNAMSIZ, declarations for the structures, phy.h to
mv88e6xxx.h as it needs it for phy_interface_t, and remove both phy.h
and phy_fixed.h from net/dsa.h.
This patch reduces from around 800 files rebuilt to around 40 - even
with ccache, the time difference is noticable.
In order to make this change, several drivers need to be updated to
include necessary headers that they were picking up through this
include. This has resulted in a much larger patch series.
I'm assuming the 0-day builder has had 24 hours with this series, and
hasn't reported any further issues with it - the last issue was two
weeks ago (before I became ill) which I fixed over the last weekend.
I'm hoping this doesn't conflict with what's already in net-next...
arch/mips/cavium-octeon/octeon-platform.c | 4 ----
drivers/net/dsa/mv88e6xxx/mv88e6xxx.h | 1 +
drivers/net/ethernet/broadcom/bgmac.c | 2 ++
drivers/net/ethernet/cadence/macb.h | 2 ++
drivers/net/ethernet/cavium/liquidio/lio_main.c | 1 +
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 1 +
drivers/net/ethernet/cavium/liquidio/octeon_console.c | 1 +
drivers/net/ethernet/freescale/fman/fman_memac.c | 1 +
drivers/net/ethernet/marvell/mvneta.c | 1 +
drivers/net/ethernet/qualcomm/emac/emac-sgmii.c | 1 +
drivers/net/usb/lan78xx.c | 1 +
drivers/net/wireless/ath/ath5k/ahb.c | 2 +-
drivers/target/iscsi/iscsi_target_login.c | 1 +
include/net/dsa.h | 6 ++++--
net/core/netprio_cgroup.c | 1 +
net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 1 +
16 files changed, 20 insertions(+), 7 deletions(-)
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
^ permalink raw reply
* [PATCH 4.10-rc3 05/13] net: bgmac: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:18 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
drivers/net/ethernet/broadcom/bgmac.c:1015:17: error: dereferencing pointer to incomplete type 'struct mii_bus'
drivers/net/ethernet/broadcom/bgmac.c:1185:2: error: implicit declaration of function 'phy_start' [-Werror=implicit-function-declaration]
drivers/net/ethernet/broadcom/bgmac.c:1198:2: error: implicit declaration of function 'phy_stop' [-Werror=implicit-function-declaration]
drivers/net/ethernet/broadcom/bgmac.c:1239:9: error: implicit declaration of function 'phy_mii_ioctl' [-Werror=implicit-function-declaration]
drivers/net/ethernet/broadcom/bgmac.c:1389:28: error: 'phy_ethtool_get_link_ksettings' undeclared here (not in a function)
drivers/net/ethernet/broadcom/bgmac.c:1390:28: error: 'phy_ethtool_set_link_ksettings' undeclared here (not in a function)
drivers/net/ethernet/broadcom/bgmac.c:1403:13: error: dereferencing pointer to incomplete type 'struct phy_device'
drivers/net/ethernet/broadcom/bgmac.c:1417:3: error: implicit declaration of function 'phy_print_status' [-Werror=implicit-function-declaration]
drivers/net/ethernet/broadcom/bgmac.c:1424:26: error: storage size of 'fphy_status' isn't known
drivers/net/ethernet/broadcom/bgmac.c:1424:9: error: variable 'fphy_status' has initializer but incomplete type
drivers/net/ethernet/broadcom/bgmac.c:1425:11: warning: excess elements in struct initializer
drivers/net/ethernet/broadcom/bgmac.c:1425:3: error: unknown field 'link' specified in initializer
drivers/net/ethernet/broadcom/bgmac.c:1426:12: note: in expansion of macro 'SPEED_1000'
drivers/net/ethernet/broadcom/bgmac.c:1426:3: error: unknown field 'speed' specified in initializer
drivers/net/ethernet/broadcom/bgmac.c:1427:13: note: in expansion of macro 'DUPLEX_FULL'
drivers/net/ethernet/broadcom/bgmac.c:1427:3: error: unknown field 'duplex' specified in initializer
drivers/net/ethernet/broadcom/bgmac.c:1432:12: error: implicit declaration of function 'fixed_phy_register' [-Werror=implicit-function-declaration]
drivers/net/ethernet/broadcom/bgmac.c:1432:31: error: 'PHY_POLL' undeclared (first use in this function)
drivers/net/ethernet/broadcom/bgmac.c:1438:8: error: implicit declaration of function 'phy_connect_direct' [-Werror=implicit-function-declaration]
drivers/net/ethernet/broadcom/bgmac.c:1439:6: error: 'PHY_INTERFACE_MODE_MII' undeclared (first use in this function)
drivers/net/ethernet/broadcom/bgmac.c:1521:2: error: implicit declaration of function 'phy_disconnect' [-Werror=implicit-function-declaration]
drivers/net/ethernet/broadcom/bgmac.c:1541:15: error: expected declaration specifiers or '...' before string constant
Add linux/phy.h to bgmac.c
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/broadcom/bgmac.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c
index 0e066dc6b8cc..58a2bd3c0458 100644
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
@@ -12,6 +12,8 @@
#include <linux/bcma/bcma.h>
#include <linux/etherdevice.h>
#include <linux/bcm47xx_nvram.h>
+#include <linux/phy.h>
+#include <linux/phy_fixed.h>
#include "bgmac.h"
static bool bgmac_wait_value(struct bgmac *bgmac, u16 reg, u32 mask,
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 04/13] net: lan78xx: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:18 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Woojung Huh,
Microchip Linux Driver Support
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
drivers/net/usb/lan78xx.c:394:33: sparse: expected ; at end of declaration
drivers/net/usb/lan78xx.c:394:33: sparse: Expected } at end of struct-union-enum-specifier
drivers/net/usb/lan78xx.c:394:33: sparse: got interface
drivers/net/usb/lan78xx.c:403:1: sparse: Expected ; at the end of type declaration
drivers/net/usb/lan78xx.c:403:1: sparse: got }
Add linux/phy.h to lan78xx.c
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/usb/lan78xx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 08f8703e4d54..9889a70ff4f6 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -35,6 +35,7 @@
#include <linux/irq.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/microchipphy.h>
+#include <linux/phy.h>
#include "lan78xx.h"
#define DRIVER_AUTHOR "WOOJUNG HUH <woojung.huh@microchip.com>"
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 13/13] net: dsa: remove unnecessary phy*.h includes
From: Russell King @ 2017-01-31 19:19 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Andrew Lunn, Vivien Didelot
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
Including phy.h and phy_fixed.h into net/dsa.h causes phy*.h to be an
unnecessary dependency for quite a large amount of the kernel. There's
very little which actually requires definitions from phy.h in net/dsa.h
- the include itself only wants the declaration of a couple of
structures and IFNAMSIZ.
Add linux/if.h for IFNAMSIZ, declarations for the structures, phy.h to
mv88e6xxx.h as it needs it for phy_interface_t, and remove both phy.h
and phy_fixed.h from net/dsa.h.
This patch reduces from around 800 files rebuilt to around 40 - even
with ccache, the time difference is noticable.
Tested-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/dsa/mv88e6xxx/mv88e6xxx.h | 1 +
include/net/dsa.h | 6 ++++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h b/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
index af54baea47cf..3a949095068a 100644
--- a/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
+++ b/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
@@ -15,6 +15,7 @@
#include <linux/if_vlan.h>
#include <linux/irq.h>
#include <linux/gpio/consumer.h>
+#include <linux/phy.h>
#ifndef UINT64_MAX
#define UINT64_MAX (u64)(~((u64)0))
diff --git a/include/net/dsa.h b/include/net/dsa.h
index b122196d5a1f..887b2f98f9ea 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -11,15 +11,17 @@
#ifndef __LINUX_NET_DSA_H
#define __LINUX_NET_DSA_H
+#include <linux/if.h>
#include <linux/if_ether.h>
#include <linux/list.h>
#include <linux/timer.h>
#include <linux/workqueue.h>
#include <linux/of.h>
-#include <linux/phy.h>
-#include <linux/phy_fixed.h>
#include <linux/ethtool.h>
+struct phy_device;
+struct fixed_phy_status;
+
enum dsa_tag_protocol {
DSA_TAG_PROTO_NONE = 0,
DSA_TAG_PROTO_DSA,
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 12/13] net: ath5k: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:19 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Jiri Slaby, Nick Kossifidis,
Luis R. Rodriguez, Kalle Valo
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
Fix these errors reported by the 0-day builder by replacing the
linux/export.h include with linux/module.h.
In file included from include/linux/platform_device.h:14:0,
from drivers/net/wireless/ath/ath5k/ahb.c:20:
include/linux/device.h:1463:1: warning: data definition has no type or storage class
module_init(__driver##_init); \
^
include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver'
module_driver(__platform_driver, platform_driver_register, \
^~~~~~~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
module_platform_driver(ath_ahb_driver);
^~~~~~~~~~~~~~~~~~~~~~
include/linux/device.h:1463:1: error: type defaults to 'int' in declaration of 'module_init' [-Werror=implicit-int]
module_init(__driver##_init); \
^
include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver'
module_driver(__platform_driver, platform_driver_register, \
^~~~~~~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
module_platform_driver(ath_ahb_driver);
^~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:1: warning: parameter names (without types) in function declaration
In file included from include/linux/platform_device.h:14:0,
from drivers/net/wireless/ath/ath5k/ahb.c:20:
include/linux/device.h:1468:1: warning: data definition has no type or storage class
module_exit(__driver##_exit);
^
include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver'
module_driver(__platform_driver, platform_driver_register, \
^~~~~~~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
module_platform_driver(ath_ahb_driver);
^~~~~~~~~~~~~~~~~~~~~~
include/linux/device.h:1468:1: error: type defaults to 'int' in declaration of 'module_exit' [-Werror=implicit-int]
module_exit(__driver##_exit);
^
include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver'
module_driver(__platform_driver, platform_driver_register, \
^~~~~~~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
module_platform_driver(ath_ahb_driver);
^~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:1: warning: parameter names (without types) in function declaration
In file included from include/linux/platform_device.h:14:0,
from drivers/net/wireless/ath/ath5k/ahb.c:20:
drivers/net/wireless/ath/ath5k/ahb.c:233:24: warning: 'ath_ahb_driver_exit' defined but not used [-Wunused-function]
module_platform_driver(ath_ahb_driver);
^
include/linux/device.h:1464:20: note: in definition of macro 'module_driver'
static void __exit __driver##_exit(void) \
^~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
module_platform_driver(ath_ahb_driver);
^~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:24: warning: 'ath_ahb_driver_init' defined but not used [-Wunused-function]
module_platform_driver(ath_ahb_driver);
^
include/linux/device.h:1459:19: note: in definition of macro 'module_driver'
static int __init __driver##_init(void) \
^~~~~~~~
drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
module_platform_driver(ath_ahb_driver);
^~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/wireless/ath/ath5k/ahb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath5k/ahb.c b/drivers/net/wireless/ath/ath5k/ahb.c
index 2ca88b593e4c..c0794f5988b3 100644
--- a/drivers/net/wireless/ath/ath5k/ahb.c
+++ b/drivers/net/wireless/ath/ath5k/ahb.c
@@ -16,10 +16,10 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <linux/module.h>
#include <linux/nl80211.h>
#include <linux/platform_device.h>
#include <linux/etherdevice.h>
-#include <linux/export.h>
#include <ath25_platform.h>
#include "ath5k.h"
#include "debug.h"
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 07/13] net: mvneta: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:18 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Thomas Petazzoni
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
drivers/net/ethernet/marvell/mvneta.c:2694:26: error: storage size of 'status' isn't known
drivers/net/ethernet/marvell/mvneta.c:2695:26: error: storage size of 'changed' isn't known
drivers/net/ethernet/marvell/mvneta.c:2695:9: error: variable 'changed' has initializer but incomplete type
drivers/net/ethernet/marvell/mvneta.c:2709:2: error: implicit declaration of function 'fixed_phy_update_state' [-Werror=implicit-function-declaration]
Add linux/phy_fixed.h to mvneta.c
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/marvell/mvneta.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index e05e22705cf7..eb0eb3e62ca0 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -28,6 +28,7 @@
#include <linux/of_mdio.h>
#include <linux/of_net.h>
#include <linux/phy.h>
+#include <linux/phy_fixed.h>
#include <linux/platform_device.h>
#include <linux/skbuff.h>
#include <net/hwbm.h>
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 10/13] MIPS: Octeon: Remove unnecessary MODULE_*()
From: Russell King @ 2017-01-31 19:19 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Ralf Baechle
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
octeon-platform.c can not be built as a module for two reasons:
(a) the Makefile doesn't allow it:
obj-y := cpu.o setup.o octeon-platform.o octeon-irq.o csrc-octeon.o
(b) the multiple *_initcall() statements, each of which are translated
to a module_init() call when attempting a module build, become
aliases to init_module(). Having more than one alias will cause a
build error.
Hence, rather than adding a linux/module.h include, remove the redundant
MODULE_*() from this file.
Acked-by: David Daney <david.daney@cavium.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/mips/cavium-octeon/octeon-platform.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/arch/mips/cavium-octeon/octeon-platform.c b/arch/mips/cavium-octeon/octeon-platform.c
index 37a932d9148c..8297ce714c5e 100644
--- a/arch/mips/cavium-octeon/octeon-platform.c
+++ b/arch/mips/cavium-octeon/octeon-platform.c
@@ -1060,7 +1060,3 @@ static int __init octeon_publish_devices(void)
return of_platform_bus_probe(NULL, octeon_ids, NULL);
}
arch_initcall(octeon_publish_devices);
-
-MODULE_AUTHOR("David Daney <ddaney@caviumnetworks.com>");
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Platform driver for Octeon SOC");
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 09/13] iscsi: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:19 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Nicholas A. Bellinger
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
drivers/target/iscsi/iscsi_target_login.c:1135:7: error: implicit declaration of function 'try_module_get' [-Werror=implicit-function-declaration]
Add linux/module.h to iscsi_target_login.c.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/target/iscsi/iscsi_target_login.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
index 450f51deb2a2..eab274d17b5c 100644
--- a/drivers/target/iscsi/iscsi_target_login.c
+++ b/drivers/target/iscsi/iscsi_target_login.c
@@ -17,6 +17,7 @@
******************************************************************************/
#include <crypto/hash.h>
+#include <linux/module.h>
#include <linux/string.h>
#include <linux/kthread.h>
#include <linux/idr.h>
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 11/13] net: liquidio: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:19 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Derek Chickles, Satanand Burla,
Felix Manlunas, Raghu Vatsavayi
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:30: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:30: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:30: error: type defaults to 'int' in declaration of 'MODULE_AUTHOR'
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:30: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:31: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:31: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:31: error: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION'
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:31: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:32: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:32: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:32: error: type defaults to 'int' in declaration of 'MODULE_LICENSE'
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:32: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:33: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:33: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:33: error: type defaults to 'int' in declaration of 'MODULE_VERSION'
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:33: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:36: error: expected ')' before 'int'
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:37: error: expected ')' before string constant
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:325: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:325: error: type defaults to 'int' in declaration of 'MODULE_DEVICE_TABLE'
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:325: warning: parameter names (without types) in function declaration
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3250: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3250: error: type defaults to 'int' in declaration of 'module_init'
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3250: warning: parameter names (without types) in function declaration
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3251: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3251: error: type defaults to 'int' in declaration of 'module_exit'
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3251: warning: parameter names (without types) in function declaration
drivers/net/ethernet/cavium/liquidio/lio_main.c:36: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:36: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:36: error: type defaults to 'int' in declaration of 'MODULE_AUTHOR'
drivers/net/ethernet/cavium/liquidio/lio_main.c:36: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_main.c:37: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:37: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:37: error: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION'
drivers/net/ethernet/cavium/liquidio/lio_main.c:37: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_main.c:38: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:38: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:38: error: type defaults to 'int' in declaration of 'MODULE_LICENSE'
drivers/net/ethernet/cavium/liquidio/lio_main.c:38: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_main.c:39: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:39: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:39: error: type defaults to 'int' in declaration of 'MODULE_VERSION'
drivers/net/ethernet/cavium/liquidio/lio_main.c:39: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_main.c:40: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:40: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:40: error: type defaults to 'int' in declaration of 'MODULE_FIRMWARE'
drivers/net/ethernet/cavium/liquidio/lio_main.c:40: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_main.c:41: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:41: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:41: error: type defaults to 'int' in declaration of 'MODULE_FIRMWARE'
drivers/net/ethernet/cavium/liquidio/lio_main.c:41: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_main.c:42: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:42: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:42: error: type defaults to 'int' in declaration of 'MODULE_FIRMWARE'
drivers/net/ethernet/cavium/liquidio/lio_main.c:42: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_main.c:43: error: expected declaration specifiers or '...' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:43: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:43: error: type defaults to 'int' in declaration of 'MODULE_FIRMWARE'
drivers/net/ethernet/cavium/liquidio/lio_main.c:43: error: function declaration isn't a prototype
drivers/net/ethernet/cavium/liquidio/lio_main.c:46: error: expected ')' before 'int'
drivers/net/ethernet/cavium/liquidio/lio_main.c:48: error: expected ')' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:53: error: expected ')' before 'int'
drivers/net/ethernet/cavium/liquidio/lio_main.c:54: error: expected ')' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:57: error: expected ')' before 'sizeof'
drivers/net/ethernet/cavium/liquidio/lio_main.c:58: error: expected ')' before string constant
drivers/net/ethernet/cavium/liquidio/lio_main.c:498: warning: data definitionhas no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:498: error: type defaults to 'int' in declaration of 'MODULE_DEVICE_TABLE'
drivers/net/ethernet/cavium/liquidio/lio_main.c:498: warning: parameter names (without types) in function declaration
drivers/net/ethernet/cavium/liquidio/lio_main.c: In function 'octeon_recv_vf_drv_notice':
drivers/net/ethernet/cavium/liquidio/lio_main.c:4393: error: implicit declaration of function 'try_module_get'
drivers/net/ethernet/cavium/liquidio/lio_main.c:4400: error: implicit declaration of function 'module_put'
drivers/net/ethernet/cavium/liquidio/lio_main.c: At top level:
drivers/net/ethernet/cavium/liquidio/lio_main.c:4670: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:4670: error: type defaults to 'int' in declaration of 'module_init'
drivers/net/ethernet/cavium/liquidio/lio_main.c:4670: warning: parameter names (without types) in function declaration
drivers/net/ethernet/cavium/liquidio/lio_main.c:4671: warning: data definition has no type or storage class
drivers/net/ethernet/cavium/liquidio/lio_main.c:4671: error: type defaults to 'int' in declaration of 'module_exit'
drivers/net/ethernet/cavium/liquidio/lio_main.c:4671: warning: parameter names (without types) in function declaration
Add linux/module.h to both these files.
drivers/net/ethernet/cavium/liquidio/octeon_console.c:40:31: error: expected ')' before 'int'
drivers/net/ethernet/cavium/liquidio/octeon_console.c:42:4: error: expected ')' before string constant
Add linux/moduleparam.h to this file.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/cavium/liquidio/lio_main.c | 1 +
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 1 +
drivers/net/ethernet/cavium/liquidio/octeon_console.c | 1 +
3 files changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
index 39a9665c9d00..e4dd39440687 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
@@ -15,6 +15,7 @@
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
* NONINFRINGEMENT. See the GNU General Public License for more details.
***********************************************************************/
+#include <linux/module.h>
#include <linux/pci.h>
#include <linux/firmware.h>
#include <net/vxlan.h>
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
index 70d96c10c673..b98d29827a0d 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
@@ -15,6 +15,7 @@
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
* NONINFRINGEMENT. See the GNU General Public License for more details.
***********************************************************************/
+#include <linux/module.h>
#include <linux/pci.h>
#include <net/vxlan.h>
#include "liquidio_common.h"
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_console.c b/drivers/net/ethernet/cavium/liquidio/octeon_console.c
index 3265e0b7923e..964058c55d47 100644
--- a/drivers/net/ethernet/cavium/liquidio/octeon_console.c
+++ b/drivers/net/ethernet/cavium/liquidio/octeon_console.c
@@ -18,6 +18,7 @@
/**
* @file octeon_console.c
*/
+#include <linux/moduleparam.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/crc32.h>
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 06/13] net: fman: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:18 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Madalin Bucur
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
drivers/net/ethernet/freescale/fman/fman_memac.c:519:21: error: dereferencing pointer to incomplete type 'struct fixed_phy_status'
Add linux/phy_fixed.h to fman_memac.c
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/freescale/fman/fman_memac.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/freescale/fman/fman_memac.c b/drivers/net/ethernet/freescale/fman/fman_memac.c
index 71a5ded9d1de..cd6a53eaf161 100644
--- a/drivers/net/ethernet/freescale/fman/fman_memac.c
+++ b/drivers/net/ethernet/freescale/fman/fman_memac.c
@@ -38,6 +38,7 @@
#include <linux/slab.h>
#include <linux/io.h>
#include <linux/phy.h>
+#include <linux/phy_fixed.h>
#include <linux/of_mdio.h>
/* PCS registers */
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 08/13] net: emac: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:19 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Timur Tabi
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
drivers/net/ethernet/qualcomm/emac/emac-sgmii.c:58:12: error: dereferencing pointer to incomplete type 'struct phy_device'
Add linux/phy.h to emac-sgmii.c
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/qualcomm/emac/emac-sgmii.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/qualcomm/emac/emac-sgmii.c b/drivers/net/ethernet/qualcomm/emac/emac-sgmii.c
index bf722a9bb09d..5e31fb7e4ab8 100644
--- a/drivers/net/ethernet/qualcomm/emac/emac-sgmii.c
+++ b/drivers/net/ethernet/qualcomm/emac/emac-sgmii.c
@@ -16,6 +16,7 @@
#include <linux/iopoll.h>
#include <linux/acpi.h>
#include <linux/of_device.h>
+#include <linux/phy.h>
#include "emac.h"
#include "emac-mac.h"
#include "emac-sgmii.h"
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 01/13] net: sunrpc: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:18 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, J. Bruce Fields, Jeff Layton,
Trond Myklebust, Anna Schumaker
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
Removing linux/phy.h from net/dsa.h reveals a build error in the sunrpc
code:
net/sunrpc/xprtrdma/svc_rdma_backchannel.c: In function 'xprt_rdma_bc_put':
net/sunrpc/xprtrdma/svc_rdma_backchannel.c:277:2: error: implicit declaration of function 'module_put' [-Werror=implicit-function-declaration]
net/sunrpc/xprtrdma/svc_rdma_backchannel.c: In function 'xprt_setup_rdma_bc':
net/sunrpc/xprtrdma/svc_rdma_backchannel.c:348:7: error: implicit declaration of function 'try_module_get' [-Werror=implicit-function-declaration]
Fix this by adding linux/module.h to svc_rdma_backchannel.c
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
index 288e35c2d8f4..cb1e48e54eb1 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
@@ -4,6 +4,7 @@
* Support for backward direction RPCs on RPC/RDMA (server-side).
*/
+#include <linux/module.h>
#include <linux/sunrpc/svc_rdma.h>
#include "xprt_rdma.h"
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 02/13] net: cgroups: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:18 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
net/core/netprio_cgroup.c:303:16: error: expected declaration specifiers or '...' before string constant
MODULE_LICENSE("GPL v2");
^~~~~~~~
Add linux/module.h to fix this.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
net/core/netprio_cgroup.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/core/netprio_cgroup.c b/net/core/netprio_cgroup.c
index 2ec86fc552df..756637dc7a57 100644
--- a/net/core/netprio_cgroup.c
+++ b/net/core/netprio_cgroup.c
@@ -13,6 +13,7 @@
#include <linux/slab.h>
#include <linux/types.h>
+#include <linux/module.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/skbuff.h>
--
2.7.4
^ permalink raw reply related
* [PATCH 4.10-rc3 03/13] net: macb: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Russell King @ 2017-01-31 19:18 UTC (permalink / raw)
To: linux-mips, linux-nfs, linux-scsi, linux-usb, linux-wireless,
netdev, target-devel
Cc: David S. Miller, Florian Fainelli, Nicolas Ferre
In-Reply-To: <20170131191704.GA8281@n2100.armlinux.org.uk>
drivers/net/ethernet/cadence/macb.h:862:33: sparse: expected ; at end of declaration
drivers/net/ethernet/cadence/macb.h:862:33: sparse: Expected } at end of struct-union-enum-specifier
drivers/net/ethernet/cadence/macb.h:862:33: sparse: got phy_interface
drivers/net/ethernet/cadence/macb.h:877:1: sparse: Expected ; at the end of type declaration
drivers/net/ethernet/cadence/macb.h:877:1: sparse: got }
In file included from drivers/net/ethernet/cadence/macb_pci.c:29:0:
drivers/net/ethernet/cadence/macb.h:862:2: error: unknown type name 'phy_interface_t'
phy_interface_t phy_interface;
^~~~~~~~~~~~~~~
Add linux/phy.h to macb.h
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/cadence/macb.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h
index d67adad67be1..383da8cf5f6d 100644
--- a/drivers/net/ethernet/cadence/macb.h
+++ b/drivers/net/ethernet/cadence/macb.h
@@ -10,6 +10,8 @@
#ifndef _MACB_H
#define _MACB_H
+#include <linux/phy.h>
+
#define MACB_GREGS_NBR 16
#define MACB_GREGS_VERSION 2
#define MACB_MAX_QUEUES 8
--
2.7.4
^ permalink raw reply related
* Re: [PATCH 4.10-rc3 09/13] iscsi: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Bart Van Assche @ 2017-01-31 19:32 UTC (permalink / raw)
To: linux-usb@vger.kernel.org, linux-mips@linux-mips.org,
linux-nfs@vger.kernel.org, rmk+kernel@armlinux.org.uk,
linux-scsi@vger.kernel.org, target-devel@vger.kernel.org,
netdev@vger.kernel.org, linux-wireless@vger.kernel.org
Cc: davem@davemloft.net, f.fainelli@gmail.com, nab@linux-iscsi.org
In-Reply-To: <E1cYdxN-0000Wr-AS@rmk-PC.armlinux.org.uk>
On Tue, 2017-01-31 at 19:19 +0000, Russell King wrote:
> drivers/target/iscsi/iscsi_target_login.c:1135:7: error: implicit declara=
tion of function 'try_module_get' [-Werror=3Dimplicit-function-declaration]
>=20
> Add linux/module.h to iscsi_target_login.c.
>=20
> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
> ---
> drivers/target/iscsi/iscsi_target_login.c | 1 +
> 1 file changed, 1 insertion(+)
>=20
> diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/i=
scsi/iscsi_target_login.c
> index 450f51deb2a2..eab274d17b5c 100644
> --- a/drivers/target/iscsi/iscsi_target_login.c
> +++ b/drivers/target/iscsi/iscsi_target_login.c
> @@ -17,6 +17,7 @@
> ***********************************************************************=
*******/
> =20
> #include <crypto/hash.h>
> +#include <linux/module.h>
> #include <linux/string.h>
> #include <linux/kthread.h>
> #include <linux/idr.h>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>=
^ permalink raw reply
* Re: [PATCH 3/3] mac80211: clear failure average upon mesh path deactivation
From: Rajkumar Manoharan @ 2017-01-31 19:33 UTC (permalink / raw)
To: Thomas Pedersen; +Cc: Rajkumar Manoharan, Johannes Berg, linux-wireless
In-Reply-To: <CADjYELxr+OuJxpFUm+OocCaMRmTM1=GZEw1keYOAOCN2T3o4sg@mail.gmail.com>
On 2017-01-31 09:51, Thomas Pedersen wrote:
> Hi Rajkumar,
>
> Thanks this looks good, but..
>
> On Fri, Jan 27, 2017 at 4:01 PM, Rajkumar Manoharan
> <rmanohar@qca.qualcomm.com> wrote:
>> Mesh moving average should be cleared, whenever mesh paths
>> to the given station are deactivated due to bad link. This will
>> give enough room to analysis more tx status than retaining the
>> current average.
>>
[...]
>> ret = rhashtable_walk_init(&tbl->rhead, &iter, GFP_ATOMIC);
>> if (ret)
>> @@ -535,8 +536,11 @@ void mesh_plink_broken(struct sta_info *sta)
>> sdata->u.mesh.mshcfg.element_ttl,
>> mpath->dst, mpath->sn,
>>
>> WLAN_REASON_MESH_PATH_DEST_UNREACHABLE, bcast);
>> + paths_deactivated = true;
>> }
>> }
>> + if (paths_deactivated)
>> + sta->mesh->fail_avg = 0;
>
> .. why this indirection? Just reset mesh->fail_avg unconditionally in
> this function?
>
Hmm... As fixed paths are not affected, resetting fail_avg for fixed
path may give
wrong metric. no?
-Rajkumar
^ permalink raw reply
* Re: [PATCH 3/3] mac80211: clear failure average upon mesh path deactivation
From: Thomas Pedersen @ 2017-01-31 19:46 UTC (permalink / raw)
To: Rajkumar Manoharan; +Cc: Rajkumar Manoharan, Johannes Berg, linux-wireless
In-Reply-To: <88d1163c1c0ffea8a395f4929b29a7b3@codeaurora.org>
On Tue, Jan 31, 2017 at 11:33 AM, Rajkumar Manoharan
<rmanohar@codeaurora.org> wrote:
> On 2017-01-31 09:51, Thomas Pedersen wrote:
>>
>> Hi Rajkumar,
>>
>> Thanks this looks good, but..
>>
>> On Fri, Jan 27, 2017 at 4:01 PM, Rajkumar Manoharan
>> <rmanohar@qca.qualcomm.com> wrote:
>>>
>>> Mesh moving average should be cleared, whenever mesh paths
>>> to the given station are deactivated due to bad link. This will
>>> give enough room to analysis more tx status than retaining the
>>> current average.
>>>
> [...]
>>>
>>> ret = rhashtable_walk_init(&tbl->rhead, &iter, GFP_ATOMIC);
>>> if (ret)
>>> @@ -535,8 +536,11 @@ void mesh_plink_broken(struct sta_info *sta)
>>> sdata->u.mesh.mshcfg.element_ttl,
>>> mpath->dst, mpath->sn,
>>> WLAN_REASON_MESH_PATH_DEST_UNREACHABLE,
>>> bcast);
>>> + paths_deactivated = true;
>>> }
>>> }
>>> + if (paths_deactivated)
>>> + sta->mesh->fail_avg = 0;
>>
>>
>> .. why this indirection? Just reset mesh->fail_avg unconditionally in
>> this function?
>>
> Hmm... As fixed paths are not affected, resetting fail_avg for fixed path
> may give
> wrong metric. no?
I don't think setting fail_avg = 0 will affect existing fixed mpath
code. Anyway metrics should not
affect whether a fixed mpath is chosen.
--
thomas
^ permalink raw reply
* Re: [PATCH 4.10-rc3 01/13] net: sunrpc: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Anna Schumaker @ 2017-01-31 19:48 UTC (permalink / raw)
To: Russell King, linux-mips, linux-nfs, linux-scsi, linux-usb,
linux-wireless, netdev, target-devel
Cc: David S. Miller, Florian Fainelli, J. Bruce Fields, Jeff Layton,
Trond Myklebust
In-Reply-To: <E1cYdwi-0000Vs-97@rmk-PC.armlinux.org.uk>
Hi Russell,
On 01/31/2017 02:18 PM, Russell King wrote:
> Removing linux/phy.h from net/dsa.h reveals a build error in the sunrpc
> code:
>
> net/sunrpc/xprtrdma/svc_rdma_backchannel.c: In function 'xprt_rdma_bc_put':
> net/sunrpc/xprtrdma/svc_rdma_backchannel.c:277:2: error: implicit declaration of function 'module_put' [-Werror=implicit-function-declaration]
> net/sunrpc/xprtrdma/svc_rdma_backchannel.c: In function 'xprt_setup_rdma_bc':
> net/sunrpc/xprtrdma/svc_rdma_backchannel.c:348:7: error: implicit declaration of function 'try_module_get' [-Werror=implicit-function-declaration]
>
> Fix this by adding linux/module.h to svc_rdma_backchannel.c
>
> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This patch looks okay to me:
Acked-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
> ---
> net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
> index 288e35c2d8f4..cb1e48e54eb1 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c
> @@ -4,6 +4,7 @@
> * Support for backward direction RPCs on RPC/RDMA (server-side).
> */
>
> +#include <linux/module.h>
> #include <linux/sunrpc/svc_rdma.h>
> #include "xprt_rdma.h"
>
>
^ permalink raw reply
* Re: [PATCH 3/3] mac80211: clear failure average upon mesh path deactivation
From: Rajkumar Manoharan @ 2017-01-31 19:53 UTC (permalink / raw)
To: Thomas Pedersen; +Cc: Rajkumar Manoharan, Johannes Berg, linux-wireless
In-Reply-To: <CADjYELxQw17B5Oa8rwh5bNs-M4SgkCwKKxFAT2m=5UD44A+e8Q@mail.gmail.com>
On 2017-01-31 11:46, Thomas Pedersen wrote:
> On Tue, Jan 31, 2017 at 11:33 AM, Rajkumar Manoharan wrote:
>> On 2017-01-31 09:51, Thomas Pedersen wrote:
>>>
[...]
>>>> + if (paths_deactivated)
>>>> + sta->mesh->fail_avg = 0;
>>>
>>>
>>> .. why this indirection? Just reset mesh->fail_avg unconditionally in
>>> this function?
>>>
>> Hmm... As fixed paths are not affected, resetting fail_avg for fixed
>> path
>> may give
>> wrong metric. no?
>
> I don't think setting fail_avg = 0 will affect existing fixed mpath
> code. Anyway metrics should not
> affect whether a fixed mpath is chosen.
>
Great. Will remove conditional check. Thanks for your feedback Thomas.
-Rajkumar
^ permalink raw reply
* [PATCH v2 2/3] mac80211: Make mesh failure moving average configurable
From: Rajkumar Manoharan @ 2017-01-31 20:07 UTC (permalink / raw)
To: johannes; +Cc: linux-wireless, rmanohar, Rajkumar Manoharan
In-Reply-To: <1485893272-6893-1-git-send-email-rmanohar@qca.qualcomm.com>
Currently mesh moving fail average is calculated based on constant
weight factor. In worst case moving average reaches threshold by
considering 16 msdu tx ack status and deactivates mesh path. Having
a constant weight factor might not be suitable for all environments.
So make it tunable parameter and also lower default weight to 10 so
that mesh broken link calculation will consider more packet status
(32 msdus ack status) before dropping mesh path.
In OTA 2-hop topolgy (MP1 <-> MP2 <-> MP3), while running TCP traffic
of window size of 2M where each nodes are operating in VHT80 mode,
mesh path between forwarding node (MP2) and border nodes (MP1/MP3) is
deactivated more often when average weight is 20.
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
---
net/mac80211/debugfs_netdev.c | 27 +++++++++++++++++++++++++++
net/mac80211/ieee80211_i.h | 1 +
net/mac80211/mesh.c | 1 +
net/mac80211/mesh.h | 3 +++
net/mac80211/mesh_hwmp.c | 4 +++-
5 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 8f5fff8b2040..3923401a85dd 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -586,6 +586,32 @@ static ssize_t ieee80211_if_parse_tsf(
#ifdef CONFIG_MAC80211_MESH
IEEE80211_IF_FILE(estab_plinks, u.mesh.estab_plinks, ATOMIC);
+static ssize_t ieee80211_if_fmt_fail_avg_weight(
+ const struct ieee80211_sub_if_data *sdata, char *buf, int buflen)
+{
+ return snprintf(buf, buflen, "%d\n", sdata->u.mesh.fail_avg_weight);
+}
+
+static ssize_t ieee80211_if_parse_fail_avg_weight(
+ struct ieee80211_sub_if_data *sdata, const char *buf, int buflen)
+{
+ u8 val;
+ int ret;
+
+ ret = kstrtou8(buf, 0, &val);
+ if (ret)
+ return ret;
+
+ if (val > 100)
+ return -ERANGE;
+
+ sdata->u.mesh.fail_avg_weight = val;
+
+ return buflen;
+}
+
+IEEE80211_IF_FILE_RW(fail_avg_weight);
+
/* Mesh stats attributes */
IEEE80211_IF_FILE(fwded_mcast, u.mesh.mshstats.fwded_mcast, DEC);
IEEE80211_IF_FILE(fwded_unicast, u.mesh.mshstats.fwded_unicast, DEC);
@@ -711,6 +737,7 @@ static void add_mesh_files(struct ieee80211_sub_if_data *sdata)
{
DEBUGFS_ADD_MODE(tsf, 0600);
DEBUGFS_ADD_MODE(estab_plinks, 0400);
+ DEBUGFS_ADD_MODE(fail_avg_weight, 0600);
}
static void add_mesh_stats(struct ieee80211_sub_if_data *sdata)
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 159a1a733725..30babcea3e06 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -711,6 +711,7 @@ struct ieee80211_if_mesh {
struct mesh_table *mpp_paths; /* Store paths for MPP&MAP */
int mesh_paths_generation;
int mpp_paths_generation;
+ u8 fail_avg_weight;
};
#ifdef CONFIG_MAC80211_MESH
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 9c23172feba0..491fd76f91bd 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -1368,6 +1368,7 @@ void ieee80211_mesh_init_sdata(struct ieee80211_sub_if_data *sdata)
ifmsh->last_preq = jiffies;
ifmsh->next_perr = jiffies;
ifmsh->csa_role = IEEE80211_MESH_CSA_ROLE_NONE;
+ ifmsh->fail_avg_weight = MESH_FAIL_AVG_WEIGHT;
/* Allocate all mesh structures when creating the first mesh interface. */
if (!mesh_allocated)
ieee80211s_init();
diff --git a/net/mac80211/mesh.h b/net/mac80211/mesh.h
index 7e5f271e3c30..887746022cc6 100644
--- a/net/mac80211/mesh.h
+++ b/net/mac80211/mesh.h
@@ -185,6 +185,9 @@ struct mesh_rmc {
/* Number of frames buffered per destination for unresolved destinations */
#define MESH_FRAME_QUEUE_LEN 10
+/* Moving failure average weight of mesh peer link (in percent) */
+#define MESH_FAIL_AVG_WEIGHT 10
+
/* Public interfaces */
/* Various */
int ieee80211_fill_mesh_addresses(struct ieee80211_hdr *hdr, __le16 *fc,
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index f0aa1da15bd0..61a824eb2c73 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -301,6 +301,7 @@ void ieee80211s_update_metric(struct ieee80211_local *local,
struct ieee80211_tx_info *txinfo = IEEE80211_SKB_CB(skb);
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
u32 fail_avg = sta->mesh->fail_avg;
+ u8 fail_avg_weight = sta->sdata->u.mesh.fail_avg_weight;
int failed;
if (!ieee80211_is_data(hdr->frame_control))
@@ -309,7 +310,8 @@ void ieee80211s_update_metric(struct ieee80211_local *local,
failed = !(txinfo->flags & IEEE80211_TX_STAT_ACK);
/* moving average, scaled to 100 */
- fail_avg = ((80 * fail_avg + 5) / 100 + 20 * failed);
+ fail_avg = (((100 - fail_avg_weight) * fail_avg + 5) / 100 +
+ fail_avg_weight * failed);
/* bump up fail average since fractional part of average is ignored.
* Otherwise fail average always stuck at the same level and
--
1.9.1
^ permalink raw reply related
* [PATCH v2 3/3] mac80211: clear failure average upon mesh path deactivation
From: Rajkumar Manoharan @ 2017-01-31 20:07 UTC (permalink / raw)
To: johannes; +Cc: linux-wireless, rmanohar, Rajkumar Manoharan
In-Reply-To: <1485893272-6893-1-git-send-email-rmanohar@qca.qualcomm.com>
Mesh moving average should be cleared, whenever mesh paths
to the given station are deactivated due to bad link. It makes
path deactivation logic more robust by considering more tx
status before terminating mesh link.
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
---
v2:
* removed paths_deactivated check
* updated commit log
net/mac80211/mesh_pathtbl.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c
index f0e6175a9821..bab443e5284d 100644
--- a/net/mac80211/mesh_pathtbl.c
+++ b/net/mac80211/mesh_pathtbl.c
@@ -537,6 +537,7 @@ void mesh_plink_broken(struct sta_info *sta)
WLAN_REASON_MESH_PATH_DEST_UNREACHABLE, bcast);
}
}
+ sta->mesh->fail_avg = 0;
out:
rhashtable_walk_stop(&iter);
rhashtable_walk_exit(&iter);
--
1.9.1
^ permalink raw reply related
* [PATCH v2 1/3] mac80211: fix mesh moving average stuck
From: Rajkumar Manoharan @ 2017-01-31 20:07 UTC (permalink / raw)
To: johannes; +Cc: linux-wireless, rmanohar, Rajkumar Manoharan
As moving average is not considering fractional part after
certain ratio, it will stuck at the same state. For example
with current values, moving average stuck at 96 and it will
not move forward. Fortunately current threshold is matching
against 95%. If thresold is increased more than 96, mesh path
never be deactivated under worst case. Fix failure average
movement by bumping up average at stuck state.
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
---
net/mac80211/mesh_hwmp.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index b747c9645e43..f0aa1da15bd0 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -300,6 +300,7 @@ void ieee80211s_update_metric(struct ieee80211_local *local,
{
struct ieee80211_tx_info *txinfo = IEEE80211_SKB_CB(skb);
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
+ u32 fail_avg = sta->mesh->fail_avg;
int failed;
if (!ieee80211_is_data(hdr->frame_control))
@@ -308,8 +309,17 @@ void ieee80211s_update_metric(struct ieee80211_local *local,
failed = !(txinfo->flags & IEEE80211_TX_STAT_ACK);
/* moving average, scaled to 100 */
- sta->mesh->fail_avg =
- ((80 * sta->mesh->fail_avg + 5) / 100 + 20 * failed);
+ fail_avg = ((80 * fail_avg + 5) / 100 + 20 * failed);
+
+ /* bump up fail average since fractional part of average is ignored.
+ * Otherwise fail average always stuck at the same level and
+ * never moves forward.
+ */
+ if (fail_avg && fail_avg == sta->mesh->fail_avg)
+ fail_avg++;
+
+ sta->mesh->fail_avg = fail_avg;
+
if (sta->mesh->fail_avg > 95)
mesh_plink_broken(sta);
}
--
1.9.1
^ permalink raw reply related
* Re: [PATCH 4.10-rc3 08/13] net: emac: fix build errors when linux/phy*.h is removed from net/dsa.h
From: Timur Tabi @ 2017-01-31 20:15 UTC (permalink / raw)
To: Russell King, linux-mips, linux-nfs, linux-scsi, linux-usb,
linux-wireless, netdev, target-devel
Cc: David S. Miller, Florian Fainelli
In-Reply-To: <E1cYdxI-0000Wk-5w@rmk-PC.armlinux.org.uk>
On 01/31/2017 01:19 PM, Russell King wrote:
> drivers/net/ethernet/qualcomm/emac/emac-sgmii.c:58:12: error: dereferencing pointer to incomplete type 'struct phy_device'
>
> Add linux/phy.h to emac-sgmii.c
>
> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
> ---
> drivers/net/ethernet/qualcomm/emac/emac-sgmii.c | 1 +
The version of emac-sgmii.c on net-next does not need this fixed. I already
removed all references to phy_device in commit "net: qcom/emac: always use
autonegotiation to configure the SGMII link".
--
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
Technologies, Inc. Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox