Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 266832
b: refs/heads/master
c: 4d2d55a
h: refs/heads/master
v: v3
  • Loading branch information
Greg Rose authored and Jeff Kirsher committed Oct 17, 2011
1 parent 40f522b commit b44ae5e
Show file tree
Hide file tree
Showing 255 changed files with 3,145 additions and 102,406 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 01b7806cdce3d3cf1626a1e79389f30512703069
refs/heads/master: 4d2d55ac94f52ea8787270ec29579ced83f5f96b
4 changes: 0 additions & 4 deletions trunk/Documentation/networking/mac80211-injection.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ radiotap headers and used to control injection:
IEEE80211_RADIOTAP_F_FRAG: frame will be fragmented if longer than the
current fragmentation threshold.

* IEEE80211_RADIOTAP_TX_FLAGS

IEEE80211_RADIOTAP_F_TX_NOACK: frame should be sent without waiting for
an ACK even if it is a unicast frame

The injection code can also skip all other currently defined radiotap fields
facilitating replay of captured radiotap headers directly.
Expand Down
4 changes: 2 additions & 2 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -1671,7 +1671,7 @@ CAN NETWORK LAYER
M: Oliver Hartkopp <socketcan@hartkopp.net>
M: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
M: Urs Thuermann <urs.thuermann@volkswagen.de>
L: linux-can@vger.kernel.org
L: socketcan-core@lists.berlios.de (subscribers-only)
L: netdev@vger.kernel.org
W: http://developer.berlios.de/projects/socketcan/
S: Maintained
Expand All @@ -1683,7 +1683,7 @@ F: include/linux/can/raw.h

CAN NETWORK DRIVERS
M: Wolfgang Grandegger <wg@grandegger.com>
L: linux-can@vger.kernel.org
L: socketcan-core@lists.berlios.de (subscribers-only)
L: netdev@vger.kernel.org
W: http://developer.berlios.de/projects/socketcan/
S: Maintained
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/can/at91_can.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
* Public License ("GPL") version 2 as distributed in the 'COPYING'
* file from the main directory of the linux kernel source.
*
* Send feedback to <socketcan-users@lists.berlios.de>
*
*
* Your platform definition file should specify something like:
*
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/can/sja1000/sja1000.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* Send feedback to <socketcan-users@lists.berlios.de>
*
*/

#include <linux/module.h>
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/can/sja1000/sja1000.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* Send feedback to <socketcan-users@lists.berlios.de>
*
*/

#ifndef SJA1000_DEV_H
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/can/slcan.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* Send feedback to <socketcan-users@lists.berlios.de>
*
*/

#include <linux/module.h>
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/can/vcan.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* Send feedback to <socketcan-users@lists.berlios.de>
*
*/

#include <linux/module.h>
Expand Down
20 changes: 17 additions & 3 deletions trunk/drivers/net/ethernet/ibm/ehea/ehea.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include <linux/ethtool.h>
#include <linux/vmalloc.h>
#include <linux/if_vlan.h>
#include <linux/inet_lro.h>

#include <asm/ibmebus.h>
#include <asm/abs_addr.h>
Expand All @@ -57,6 +58,8 @@
#define EHEA_MIN_ENTRIES_QP 127

#define EHEA_SMALL_QUEUES
#define EHEA_NUM_TX_QP 1
#define EHEA_LRO_MAX_AGGR 64

#ifdef EHEA_SMALL_QUEUES
#define EHEA_MAX_CQE_COUNT 1023
Expand All @@ -80,16 +83,18 @@
#define EHEA_SG_RQ3 0

#define EHEA_MAX_PACKET_SIZE 9022 /* for jumbo frames */
#define EHEA_RQ2_PKT_SIZE 2048
#define EHEA_RQ2_PKT_SIZE 1522
#define EHEA_L_PKT_SIZE 256 /* low latency */

#define MAX_LRO_DESCRIPTORS 8

/* Send completion signaling */

/* Protection Domain Identifier */
#define EHEA_PD_ID 0xaabcdeff

#define EHEA_RQ2_THRESHOLD 1
#define EHEA_RQ3_THRESHOLD 4 /* use RQ3 threshold of 2048 bytes */
#define EHEA_RQ3_THRESHOLD 9 /* use RQ3 threshold of 1522 bytes */

#define EHEA_SPEED_10G 10000
#define EHEA_SPEED_1G 1000
Expand Down Expand Up @@ -358,6 +363,7 @@ struct ehea_port_res {
struct port_stats p_stats;
struct ehea_mr send_mr; /* send memory region */
struct ehea_mr recv_mr; /* receive memory region */
spinlock_t xmit_lock;
struct ehea_port *port;
char int_recv_name[EHEA_IRQ_NAME_SIZE];
char int_send_name[EHEA_IRQ_NAME_SIZE];
Expand All @@ -370,6 +376,8 @@ struct ehea_port_res {
struct ehea_q_skb_arr rq3_skba;
struct ehea_q_skb_arr sq_skba;
int sq_skba_size;
spinlock_t netif_queue;
int queue_stopped;
int swqe_refill_th;
atomic_t swqe_avail;
int swqe_ll_count;
Expand All @@ -378,6 +386,9 @@ struct ehea_port_res {
u64 tx_bytes;
u64 rx_packets;
u64 rx_bytes;
u32 poll_counter;
struct net_lro_mgr lro_mgr;
struct net_lro_desc lro_desc[MAX_LRO_DESCRIPTORS];
int sq_restart_flag;
};

Expand Down Expand Up @@ -442,7 +453,7 @@ struct ehea_bcmc_reg_array {
struct ehea_port {
struct ehea_adapter *adapter; /* adapter that owns this port */
struct net_device *netdev;
struct rtnl_link_stats64 stats;
struct net_device_stats stats;
struct ehea_port_res port_res[EHEA_MAX_PORT_RES];
struct platform_device ofdev; /* Open Firmware Device */
struct ehea_mc_list *mc_list; /* Multicast MAC addresses */
Expand All @@ -453,6 +464,8 @@ struct ehea_port {
char int_aff_name[EHEA_IRQ_NAME_SIZE];
int allmulti; /* Indicates IFF_ALLMULTI state */
int promisc; /* Indicates IFF_PROMISC state */
int num_tx_qps;
int num_add_tx_qps;
int num_mcs;
int resets;
unsigned long flags;
Expand All @@ -462,6 +475,7 @@ struct ehea_port {
u32 msg_enable;
u32 sig_comp_iv;
u32 state;
u32 lro_max_aggr;
u8 phy_link;
u8 full_duplex;
u8 autoneg;
Expand Down
33 changes: 23 additions & 10 deletions trunk/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ static void ehea_set_msglevel(struct net_device *dev, u32 value)
port->msg_enable = value;
}

static const char ehea_ethtool_stats_keys[][ETH_GSTRING_LEN] = {
static char ehea_ethtool_stats_keys[][ETH_GSTRING_LEN] = {
{"sig_comp_iv"},
{"swqe_refill_th"},
{"port resets"},
Expand All @@ -189,6 +189,7 @@ static const char ehea_ethtool_stats_keys[][ETH_GSTRING_LEN] = {
{"IP cksum errors"},
{"Frame cksum errors"},
{"num SQ stopped"},
{"SQ stopped"},
{"PR0 free_swqes"},
{"PR1 free_swqes"},
{"PR2 free_swqes"},
Expand All @@ -197,14 +198,9 @@ static const char ehea_ethtool_stats_keys[][ETH_GSTRING_LEN] = {
{"PR5 free_swqes"},
{"PR6 free_swqes"},
{"PR7 free_swqes"},
{"PR8 free_swqes"},
{"PR9 free_swqes"},
{"PR10 free_swqes"},
{"PR11 free_swqes"},
{"PR12 free_swqes"},
{"PR13 free_swqes"},
{"PR14 free_swqes"},
{"PR15 free_swqes"},
{"LRO aggregated"},
{"LRO flushed"},
{"LRO no_desc"},
};

static void ehea_get_strings(struct net_device *dev, u32 stringset, u8 *data)
Expand Down Expand Up @@ -259,8 +255,25 @@ static void ehea_get_ethtool_stats(struct net_device *dev,
tmp += port->port_res[k].p_stats.queue_stopped;
data[i++] = tmp;

for (k = 0; k < 16; k++)
for (k = 0, tmp = 0; k < EHEA_MAX_PORT_RES; k++)
tmp |= port->port_res[k].queue_stopped;
data[i++] = tmp;

for (k = 0; k < 8; k++)
data[i++] = atomic_read(&port->port_res[k].swqe_avail);

for (k = 0, tmp = 0; k < EHEA_MAX_PORT_RES; k++)
tmp |= port->port_res[k].lro_mgr.stats.aggregated;
data[i++] = tmp;

for (k = 0, tmp = 0; k < EHEA_MAX_PORT_RES; k++)
tmp |= port->port_res[k].lro_mgr.stats.flushed;
data[i++] = tmp;

for (k = 0, tmp = 0; k < EHEA_MAX_PORT_RES; k++)
tmp |= port->port_res[k].lro_mgr.stats.no_desc;
data[i++] = tmp;

}

const struct ethtool_ops ehea_ethtool_ops = {
Expand Down
25 changes: 25 additions & 0 deletions trunk/drivers/net/ethernet/ibm/ehea/ehea_hw.h
Original file line number Diff line number Diff line change
Expand Up @@ -210,11 +210,36 @@ static inline void epa_store_acc(struct h_epa epa, u32 offset, u64 value)
__raw_writeq(value, (void __iomem *)(epa.addr + offset));
}

#define epa_store_eq(epa, offset, value)\
epa_store(epa, EQTEMM_OFFSET(offset), value)
#define epa_load_eq(epa, offset)\
epa_load(epa, EQTEMM_OFFSET(offset))

#define epa_store_cq(epa, offset, value)\
epa_store(epa, CQTEMM_OFFSET(offset), value)
#define epa_load_cq(epa, offset)\
epa_load(epa, CQTEMM_OFFSET(offset))

#define epa_store_qp(epa, offset, value)\
epa_store(epa, QPTEMM_OFFSET(offset), value)
#define epa_load_qp(epa, offset)\
epa_load(epa, QPTEMM_OFFSET(offset))

#define epa_store_qped(epa, offset, value)\
epa_store(epa, QPEDMM_OFFSET(offset), value)
#define epa_load_qped(epa, offset)\
epa_load(epa, QPEDMM_OFFSET(offset))

#define epa_store_mrmw(epa, offset, value)\
epa_store(epa, MRMWMM_OFFSET(offset), value)
#define epa_load_mrmw(epa, offset)\
epa_load(epa, MRMWMM_OFFSET(offset))

#define epa_store_base(epa, offset, value)\
epa_store(epa, HCAGR_OFFSET(offset), value)
#define epa_load_base(epa, offset)\
epa_load(epa, HCAGR_OFFSET(offset))

static inline void ehea_update_sqa(struct ehea_qp *qp, u16 nr_wqes)
{
struct h_epa epa = qp->epas.kernel;
Expand Down
Loading

0 comments on commit b44ae5e

Please sign in to comment.