You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (56 commits) route: Take the right src and dst addresses in ip_route_newports ipv4: Fix nexthop caching wrt. scoping. ipv4: Invalidate nexthop cache nh_saddr more correctly. net: fix pch_gbe section mismatch warning ipv4: fix fib metrics mlx4_en: Removing HW info from ethtool -i report. net_sched: fix THROTTLED/RUNNING race drivers/net/a2065.c: Convert release_resource to release_region/release_mem_region drivers/net/ariadne.c: Convert release_resource to release_region/release_mem_region bonding: fix rx_handler locking myri10ge: fix rmmod crash mlx4_en: updated driver version to 1.5.4.1 mlx4_en: Using blue flame support mlx4_core: reserve UARs for userspace consumers mlx4_core: maintain available field in bitmap allocator mlx4: Add blue flame support for kernel consumers mlx4_en: Enabling new steering mlx4: Add support for promiscuous mode in the new steering model. mlx4: generalization of multicast steering. mlx4_en: Reporting HW revision in ethtool -i ...
This commit is contained in:
@@ -36,6 +36,7 @@ struct emac_platform_data {
|
||||
|
||||
u8 rmii_en;
|
||||
u8 version;
|
||||
bool no_bd_ram;
|
||||
void (*interrupt_enable) (void);
|
||||
void (*interrupt_disable) (void);
|
||||
};
|
||||
|
||||
@@ -648,6 +648,9 @@ enum ethtool_sfeatures_retval_bits {
|
||||
|
||||
#include <linux/rculist.h>
|
||||
|
||||
/* needed by dev_disable_lro() */
|
||||
extern int __ethtool_set_flags(struct net_device *dev, u32 flags);
|
||||
|
||||
struct ethtool_rx_ntuple_flow_spec_container {
|
||||
struct ethtool_rx_ntuple_flow_spec fs;
|
||||
struct list_head list;
|
||||
|
||||
@@ -39,6 +39,11 @@
|
||||
|
||||
#include <asm/atomic.h>
|
||||
|
||||
#define MAX_MSIX_P_PORT 17
|
||||
#define MAX_MSIX 64
|
||||
#define MSIX_LEGACY_SZ 4
|
||||
#define MIN_MSIX_P_PORT 5
|
||||
|
||||
enum {
|
||||
MLX4_FLAG_MSI_X = 1 << 0,
|
||||
MLX4_FLAG_OLD_PORT_CMDS = 1 << 1,
|
||||
@@ -145,8 +150,10 @@ enum {
|
||||
};
|
||||
|
||||
enum mlx4_protocol {
|
||||
MLX4_PROTOCOL_IB,
|
||||
MLX4_PROTOCOL_EN,
|
||||
MLX4_PROT_IB_IPV6 = 0,
|
||||
MLX4_PROT_ETH,
|
||||
MLX4_PROT_IB_IPV4,
|
||||
MLX4_PROT_FCOE
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -173,6 +180,12 @@ enum mlx4_special_vlan_idx {
|
||||
MLX4_VLAN_REGULAR
|
||||
};
|
||||
|
||||
enum mlx4_steer_type {
|
||||
MLX4_MC_STEER = 0,
|
||||
MLX4_UC_STEER,
|
||||
MLX4_NUM_STEERS
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX4_NUM_FEXCH = 64 * 1024,
|
||||
};
|
||||
@@ -223,6 +236,7 @@ struct mlx4_caps {
|
||||
int num_eqs;
|
||||
int reserved_eqs;
|
||||
int num_comp_vectors;
|
||||
int comp_pool;
|
||||
int num_mpts;
|
||||
int num_mtt_segs;
|
||||
int mtts_per_seg;
|
||||
@@ -245,6 +259,9 @@ struct mlx4_caps {
|
||||
u16 stat_rate_support;
|
||||
int udp_rss;
|
||||
int loopback_support;
|
||||
int vep_uc_steering;
|
||||
int vep_mc_steering;
|
||||
int wol;
|
||||
u8 port_width_cap[MLX4_MAX_PORTS + 1];
|
||||
int max_gso_sz;
|
||||
int reserved_qps_cnt[MLX4_NUM_QP_REGION];
|
||||
@@ -334,6 +351,17 @@ struct mlx4_fmr {
|
||||
struct mlx4_uar {
|
||||
unsigned long pfn;
|
||||
int index;
|
||||
struct list_head bf_list;
|
||||
unsigned free_bf_bmap;
|
||||
void __iomem *map;
|
||||
void __iomem *bf_map;
|
||||
};
|
||||
|
||||
struct mlx4_bf {
|
||||
unsigned long offset;
|
||||
int buf_size;
|
||||
struct mlx4_uar *uar;
|
||||
void __iomem *reg;
|
||||
};
|
||||
|
||||
struct mlx4_cq {
|
||||
@@ -415,7 +443,7 @@ struct mlx4_dev {
|
||||
unsigned long flags;
|
||||
struct mlx4_caps caps;
|
||||
struct radix_tree_root qp_table_tree;
|
||||
u32 rev_id;
|
||||
u8 rev_id;
|
||||
char board_id[MLX4_BOARD_ID_LEN];
|
||||
};
|
||||
|
||||
@@ -461,6 +489,8 @@ void mlx4_pd_free(struct mlx4_dev *dev, u32 pdn);
|
||||
|
||||
int mlx4_uar_alloc(struct mlx4_dev *dev, struct mlx4_uar *uar);
|
||||
void mlx4_uar_free(struct mlx4_dev *dev, struct mlx4_uar *uar);
|
||||
int mlx4_bf_alloc(struct mlx4_dev *dev, struct mlx4_bf *bf);
|
||||
void mlx4_bf_free(struct mlx4_dev *dev, struct mlx4_bf *bf);
|
||||
|
||||
int mlx4_mtt_init(struct mlx4_dev *dev, int npages, int page_shift,
|
||||
struct mlx4_mtt *mtt);
|
||||
@@ -508,9 +538,15 @@ int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
|
||||
int block_mcast_loopback, enum mlx4_protocol protocol);
|
||||
int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
|
||||
enum mlx4_protocol protocol);
|
||||
int mlx4_multicast_promisc_add(struct mlx4_dev *dev, u32 qpn, u8 port);
|
||||
int mlx4_multicast_promisc_remove(struct mlx4_dev *dev, u32 qpn, u8 port);
|
||||
int mlx4_unicast_promisc_add(struct mlx4_dev *dev, u32 qpn, u8 port);
|
||||
int mlx4_unicast_promisc_remove(struct mlx4_dev *dev, u32 qpn, u8 port);
|
||||
int mlx4_SET_MCAST_FLTR(struct mlx4_dev *dev, u8 port, u64 mac, u64 clear, u8 mode);
|
||||
|
||||
int mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *index);
|
||||
void mlx4_unregister_mac(struct mlx4_dev *dev, u8 port, int index);
|
||||
int mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *qpn, u8 wrap);
|
||||
void mlx4_unregister_mac(struct mlx4_dev *dev, u8 port, int qpn);
|
||||
int mlx4_replace_mac(struct mlx4_dev *dev, u8 port, int qpn, u64 new_mac, u8 wrap);
|
||||
|
||||
int mlx4_find_cached_vlan(struct mlx4_dev *dev, u8 port, u16 vid, int *idx);
|
||||
int mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index);
|
||||
@@ -526,5 +562,10 @@ void mlx4_fmr_unmap(struct mlx4_dev *dev, struct mlx4_fmr *fmr,
|
||||
int mlx4_fmr_free(struct mlx4_dev *dev, struct mlx4_fmr *fmr);
|
||||
int mlx4_SYNC_TPT(struct mlx4_dev *dev);
|
||||
int mlx4_test_interrupts(struct mlx4_dev *dev);
|
||||
int mlx4_assign_eq(struct mlx4_dev *dev, char* name , int* vector);
|
||||
void mlx4_release_eq(struct mlx4_dev *dev, int vec);
|
||||
|
||||
int mlx4_wol_read(struct mlx4_dev *dev, u64 *config, int port);
|
||||
int mlx4_wol_write(struct mlx4_dev *dev, u64 config, int port);
|
||||
|
||||
#endif /* MLX4_DEVICE_H */
|
||||
|
||||
@@ -303,6 +303,7 @@ struct mlx4_wqe_data_seg {
|
||||
|
||||
enum {
|
||||
MLX4_INLINE_ALIGN = 64,
|
||||
MLX4_INLINE_SEG = 1 << 31,
|
||||
};
|
||||
|
||||
struct mlx4_wqe_inline_seg {
|
||||
|
||||
@@ -486,7 +486,8 @@ struct rate_info {
|
||||
* @plink_state: mesh peer link state
|
||||
* @signal: signal strength of last received packet in dBm
|
||||
* @signal_avg: signal strength average in dBm
|
||||
* @txrate: current unicast bitrate to this station
|
||||
* @txrate: current unicast bitrate from this station
|
||||
* @rxrate: current unicast bitrate to this station
|
||||
* @rx_packets: packets received from this station
|
||||
* @tx_packets: packets transmitted to this station
|
||||
* @tx_retries: cumulative retry counts
|
||||
|
||||
@@ -70,7 +70,7 @@ static inline struct inet_peer *rt6_get_peer(struct rt6_info *rt)
|
||||
extern void ip6_route_input(struct sk_buff *skb);
|
||||
|
||||
extern struct dst_entry * ip6_route_output(struct net *net,
|
||||
struct sock *sk,
|
||||
const struct sock *sk,
|
||||
struct flowi6 *fl6);
|
||||
|
||||
extern int ip6_route_init(void);
|
||||
|
||||
+13
-5
@@ -51,7 +51,6 @@ struct fib_nh {
|
||||
struct fib_info *nh_parent;
|
||||
unsigned nh_flags;
|
||||
unsigned char nh_scope;
|
||||
unsigned char nh_cfg_scope;
|
||||
#ifdef CONFIG_IP_ROUTE_MULTIPATH
|
||||
int nh_weight;
|
||||
int nh_power;
|
||||
@@ -62,6 +61,7 @@ struct fib_nh {
|
||||
int nh_oif;
|
||||
__be32 nh_gw;
|
||||
__be32 nh_saddr;
|
||||
int nh_saddr_genid;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -74,9 +74,10 @@ struct fib_info {
|
||||
struct net *fib_net;
|
||||
int fib_treeref;
|
||||
atomic_t fib_clntref;
|
||||
int fib_dead;
|
||||
unsigned fib_flags;
|
||||
int fib_protocol;
|
||||
unsigned char fib_dead;
|
||||
unsigned char fib_protocol;
|
||||
unsigned char fib_scope;
|
||||
__be32 fib_prefsrc;
|
||||
u32 fib_priority;
|
||||
u32 *fib_metrics;
|
||||
@@ -141,12 +142,19 @@ struct fib_result_nl {
|
||||
|
||||
#endif /* CONFIG_IP_ROUTE_MULTIPATH */
|
||||
|
||||
#define FIB_RES_SADDR(res) (FIB_RES_NH(res).nh_saddr)
|
||||
extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
|
||||
|
||||
#define FIB_RES_SADDR(net, res) \
|
||||
((FIB_RES_NH(res).nh_saddr_genid == \
|
||||
atomic_read(&(net)->ipv4.dev_addr_genid)) ? \
|
||||
FIB_RES_NH(res).nh_saddr : \
|
||||
fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
|
||||
#define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw)
|
||||
#define FIB_RES_DEV(res) (FIB_RES_NH(res).nh_dev)
|
||||
#define FIB_RES_OIF(res) (FIB_RES_NH(res).nh_oif)
|
||||
|
||||
#define FIB_RES_PREFSRC(res) ((res).fi->fib_prefsrc ? : FIB_RES_SADDR(res))
|
||||
#define FIB_RES_PREFSRC(net, res) ((res).fi->fib_prefsrc ? : \
|
||||
FIB_RES_SADDR(net, res))
|
||||
|
||||
struct fib_table {
|
||||
struct hlist_node tb_hlist;
|
||||
|
||||
@@ -1160,7 +1160,7 @@ enum ieee80211_hw_flags {
|
||||
* @napi_weight: weight used for NAPI polling. You must specify an
|
||||
* appropriate value here if a napi_poll operation is provided
|
||||
* by your driver.
|
||||
|
||||
*
|
||||
* @max_rx_aggregation_subframes: maximum buffer size (number of
|
||||
* sub-frames) to be used for A-MPDU block ack receiver
|
||||
* aggregation.
|
||||
|
||||
@@ -55,6 +55,7 @@ struct netns_ipv4 {
|
||||
int current_rt_cache_rebuild_count;
|
||||
|
||||
atomic_t rt_genid;
|
||||
atomic_t dev_addr_genid;
|
||||
|
||||
#ifdef CONFIG_IP_MROUTE
|
||||
#ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES
|
||||
|
||||
+3
-2
@@ -207,6 +207,7 @@ extern int ip_rt_dump(struct sk_buff *skb, struct netlink_callback *cb);
|
||||
|
||||
struct in_ifaddr;
|
||||
extern void fib_add_ifaddr(struct in_ifaddr *);
|
||||
extern void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *);
|
||||
|
||||
static inline void ip_rt_put(struct rtable * rt)
|
||||
{
|
||||
@@ -269,8 +270,8 @@ static inline struct rtable *ip_route_newports(struct rtable *rt,
|
||||
struct flowi4 fl4 = {
|
||||
.flowi4_oif = rt->rt_oif,
|
||||
.flowi4_mark = rt->rt_mark,
|
||||
.daddr = rt->rt_key_dst,
|
||||
.saddr = rt->rt_key_src,
|
||||
.daddr = rt->rt_dst,
|
||||
.saddr = rt->rt_src,
|
||||
.flowi4_tos = rt->rt_tos,
|
||||
.flowi4_proto = protocol,
|
||||
.fl4_sport = sport,
|
||||
|
||||
@@ -25,6 +25,7 @@ struct qdisc_rate_table {
|
||||
enum qdisc_state_t {
|
||||
__QDISC_STATE_SCHED,
|
||||
__QDISC_STATE_DEACTIVATED,
|
||||
__QDISC_STATE_THROTTLED,
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -32,7 +33,6 @@ enum qdisc_state_t {
|
||||
*/
|
||||
enum qdisc___state_t {
|
||||
__QDISC___STATE_RUNNING = 1,
|
||||
__QDISC___STATE_THROTTLED = 2,
|
||||
};
|
||||
|
||||
struct qdisc_size_table {
|
||||
@@ -106,17 +106,17 @@ static inline void qdisc_run_end(struct Qdisc *qdisc)
|
||||
|
||||
static inline bool qdisc_is_throttled(const struct Qdisc *qdisc)
|
||||
{
|
||||
return (qdisc->__state & __QDISC___STATE_THROTTLED) ? true : false;
|
||||
return test_bit(__QDISC_STATE_THROTTLED, &qdisc->state) ? true : false;
|
||||
}
|
||||
|
||||
static inline void qdisc_throttled(struct Qdisc *qdisc)
|
||||
{
|
||||
qdisc->__state |= __QDISC___STATE_THROTTLED;
|
||||
set_bit(__QDISC_STATE_THROTTLED, &qdisc->state);
|
||||
}
|
||||
|
||||
static inline void qdisc_unthrottled(struct Qdisc *qdisc)
|
||||
{
|
||||
qdisc->__state &= ~__QDISC___STATE_THROTTLED;
|
||||
clear_bit(__QDISC_STATE_THROTTLED, &qdisc->state);
|
||||
}
|
||||
|
||||
struct Qdisc_class_ops {
|
||||
|
||||
Reference in New Issue
Block a user