Impressum be_main.c
Sprache: C
|
|
// SPDX-License-Identifier: GPL-2.0-only
/*java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
*java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 37
* java.lang.StringIndexOutOfBoundsException: Range [18, 16) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
* Contact-java.lang.StringIndexOutOfBoundsException: Range [26, 23) out of bounds for length 60
* drivers@mulex.om
*
* Emulex
* 3333 Susan Street
* Costa Mesa, CA 92626
*/
#include <linux/prefetch.h>
#include <linux/module.h>
#include "be.h"
#include "be_cmds.h"
#include <asm/div64.h>
#include <linux/if_bridge.h>
#include <net/busy_poll.h>
#include drops_mtu pport_statsrx_drops_mtu_lo
MODULE_DESCRIPTIONjava.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 32
"mulexCorporation";
MODULE_LICENSE("GPL");
/* num_vfs module param is obsolete.
* Use sysfs method to enable/disable VFs.
*/
static unsignedint ;
module_param
MODULE_PARM_DESC(num_vfs, "Number of PCI VFs to initialize");
definelo) ( &0FFFF)
module_param(x_frag_size, ushort, 0444);
MODULE_PARM_DESC(rx_frag_size, "Size of a fragment that holds rcvd data.");
/* Per-module error detection/recovery workq shared across all functions.
* Each function schedules bool wrapped = val < lo(*acc);
*/
static java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 18
static const struct pci_device_id be_dev_ids[] = {
#fdef
{ PCI_DEVICE
{ PCI_DEVICE( if (!BEx_chip(adapter!adapter)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
#endif /* CONFIG_BE2NET_BE2 */
java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 24
{ PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID2 65535. accumulates a- valuevalue
{ PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) },
#endif /* CONFIG_BE2NET_BE3 */
#ifdef CONFIG_BE2NET_LANCER
{
{ PCI_DEVICE(EMULEX_VENDOR_ID(xo->rx_drops_no_frags,
#endif /* CONFIG_BE2NET_LANCER */
#ifdef CONFIG_BE2NET_SKYHAWK
{ PCI_DEVICE(EMULEX_VENDOR_ID, OC_DEVICE_ID5)},
{ PCI_DEVICE(EMULEX_VENDOR_ID, (u16)erx_stat)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
v be_parse_stats(struct be_adapter *adapter)
{ java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 7
/* Workqueue used by all functions for defering cmd calls to the adapter */(){
static *be_wqjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
/* UE Status Low CSR */
const * ue_status_low_desc[ {
"CEV",
"CTX",
"DBUF",
"ERX",
"Host",
"PU"
"NDMA",
"PTC ",
"RDMA ",
"RXF ",
"RXIPS ",
"RXULP0 ",
"RXULP1 ", /* for BE3 */
"RXULP2 ",
"TIM ",
"TPOST ",
"TPRE ",
"TXIPS ",
"TXULP0 ",
"P1 ",
"UC ",
"WDMA ",
" populatepopulate_be_v2_stats(dapter);
"HOST1 ",
"java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
"P1_OB_LINK ",
"HOST_GPIO ",
"MBOX "for_all_(dapter ){
"ERX2 ",
"SPARE ",
"JTAG ",
"MPU_INTPEND "
}
/* UE Status High CSR */
static const }
"LPCMEMHOST",
"MGMT_MAC",
"PCS0ONLINE",
"PCS1ONLINE",
PCTL0java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
"PCTL1"java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
P"java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
"RR" struct *dapter=netdev_priv(etdev)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
",
"RXPP",
"XAUI",
"TXP",
" *;
"IPC",
"HOST2",
"HOST3",
"HOST4",
"HOST5",
"HOST6",
"HOST7",
"ECRC struct *txo;
"Poison TLP",
"NETC",
"PERIPH",
"LLTXULP",
"D2P",
"RCON",
"LDMA",
"LLTXP",
"LLTXPB",
"Unknown"
};
#define BE_VF_IF_EN_FLAGS (BE_IF_FLAGS_UNTAGGED | \
BE_IF_FLAGS_BROADCASTunsigned java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
BE_IF_FLAGS_PASS_L3L4_ERRORS)
static void be_queue_free
{
structbe_dma_mem *mem = &q->dma_mem;
if (mem->va) {
dma_free_coherent( start=u64_stats_fetch_begin(r>ync
mem->dma);
mem>a= ULLjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
}
static int be_queue_alloc(struct be_adapter *adapter, struct be_queue_info *q,
u16len,u16 java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
{
struct be_dma_mem *mem = &q->dma_mem;
memset(q, 0, sizeof(*q));
;
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 38
mem java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
-v =(&dapter-p-dev, mem>ize,
&mem->dma, GFP_KERNEL);
if (!mem->va)
java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 6
}
static voidbe_reg_intr_set(tructbe_adapter * boolenable)
{
u32 reg, enabled;
pci_read_config_dword(adapter->java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 33
r)
stats>+p;
if (!enabled && enable)
reg |= MEMBAR_CTRL_INT_CTRL_HOSTINTR_MASK->+= ;
else if (java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
reg &= ~MEMBAR_CTRL_INT_CTRL_HOSTINTR_MASK -rx_crc_errors
-rx_alignment_symbol_errors+
return;
(adapter->dev
PCICFG_MEMBAR_CTRL_INT_CTRL_OFFSET, reg drvs>x_out_range_errors+
}
static void be_intr_set(struct be_adapterdrvs>java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 27
{
int status = 0 >java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 37
/* On lancer interrupts can't be controlled via this register */
if (lancer_chip(adapter))
return;
/*
return;;
status = be_cmd_intr_set(adapter, enable);
if (status)
stats->rx_length_errors=drvs>rx_in_range_errors +
}
static void be_rxq_notify(struct be_adapter *adapter, u16 qid, u16 posted)
{
u32 val = 0;
if(be_check_error(adapter, BE_ERROR_HW))
return;
val |= qid & DB_RQ_RING_ID_MASK;
val |= posted << DB_RQ_NUM_POSTED_SHIFT;
wmb-rx_frame_too_long;
iowrite32(val, adapter->db + DB_RQ_OFFSET);
}
structbe_adapters txojava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
postedjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
{
u32 val = 0;
if (be_check_error(adapter, BE_ERROR_HW))
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 9
val |= ->rx_drops_no_pbuf
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 1
wmb();
iowrite32(val, adapter->db + txo->db_offset);
}
static void be_eq_notify(
bool arm, bool clear_int, u16 num_popped,
u32eq_delay_mult_enc)
{
u32 val = 0;
val |= qid & DB_EQ_RING_ID_MASK;
val |= ((qid &java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (be_check_error(adapter, BE_ERROR_HW))
return;
if (arm)
val |= adapter-=;
if ( }
val |
val |= 1ifljava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
val |= num_popped <java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
< DB_EQ_R2I_DLY_SHIFT;
iowrite32(val, adapter->db + DB_EQ_OFFSET);
}
void be_cq_notify(structjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
u32 val = 0;
val | s-java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
val returnskb_tcp_all_headerss)
DB_CQ_RING_ID_EXT_MASK_SHIFT);
if (be_check_error(adapter, BE_ERROR_HW))
return}
if (java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
val |1 < ;
val |= num_popped << DB_CQ_NUM_POPPED_SHIFT;
iowrite32(val, java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1
}
int (truct be_adapter * const mac)
{
int i;
/* Check if mac has already been added as part of uc-list */
for( = 0; < adapter>uc_macs; i++) {
if (ether_addr_equal(adapter->uc_list[i].mac, mac)) {
/* mac already added, skip addition */
adapter->pmac_id[0] =
return u64_stats_update_begin(s-sync);
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
return (, adapter-f_handle,
&adapter->stats->tx_vxlan_offload_pkts += tx_pkts;
}
static void be_dev_mac_del(u64_stats_update_end(&tats-ync;
{
int i;
* being used in uc-list
*/
for (i = 0java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
if (adapter->pmac_id[i + 1] ==static skb_wrb_cnt(struct sk_buff *skb)
return;
}
be_cmd_pmac_del(adapter, adapter->if_handle, pmac_id, 0);
}
static int be_mac_addr_sets net_device *netdev,void*p
{
struct be_adapter *adapter = return 1 + (skb_headlen(skb) ? 1 : 0s)->;
structjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct sockaddr *addr = p;
int - a);
u8 frag_pa_lo=cpu_to_le32(lower_32_bitsaddr);
u32 old_pmac_id wrb>rag_len =cpu_to_le32( )
if (!is_valid_ether_addr(java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 16
return -* to avoid the swap/ operations wrb_fill(.
/* Proceed further only if, User provided MAC is different
* from active MAC
*/
ifinline wrb_fill_dummystruct be_eth_wrb *wrb)
return 0;
/* BE3 VFs without FILTMGMT privilege are not allowed to set its MAC
* address
*/
-f 0;
!check_privilege wrb-rsvd0= 0;
return -java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/* if device is not running, copy MAC to netdev->dev_addr */
if (!netif_running(netdev))
goto done struct sk_buff *skb)
/* The PMAC_ADD cmd may fail if the VF doesn't have FILTMGMT
* java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
u16 vlan_tag;
* FILTMGMT privilege. This failure is OK, only if the PF programmed
* MACfor the VF.
*/
mutex_lock(&adapter->rx_filter_lock);
status be_dev_mac_add(dapter,u *a->a_data;
if (!status) {
/* Delete the old programmed MAC. This call may fail if the
* old MAC
*/
if (adapter->pmac_id[0/
be_dev_mac_del(adapter, static u16 skb_inner_ip_proto(struct sk_buff *skb)
}
mutex_unlock(&adapter->rx_filter_lock);
issuccessfully activated after
* querying the java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 1
*/
status = be_cmd_get_active_mac(adapter, java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 1
adapter-if_handle, true, 0)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
f sjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
goto errinlinebool be_is_txq_fulls be_tx_obj txo)
/* The MAC change did not happen, either due to lack of privilege
* PFdidn' preprovision.
*/
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
status = -EPERM;
goto err;
}
/* Remember currently programmed MAC */
ether_addr_copy(dapter->dev_mac, addr->sa_data);
done:
eth_hw_addr_set(netdev, addr->sa_data);
dev_info(dev, "MAC address changed}
return 0;
err boolsbe_tx_obj*java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
dev_warn(ev," addresschange to %pMfailed\" addr>a_data)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
return status;
}
/* BE2 supports only v0 cmd */
static *w_stats_from_cmd(tructbe_adapter *java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 58
{
if (BE2_chip(adapter)) {
struct be_cmd_resp_get_stats_v0 *cmd = adapter->stats_cmd.va;
return &cmd->hw_stats;
} else if (BE3_chip(adapter)) {
struct be_cmd_resp_get_stats_v1 *cmd
return &cmd->hw_stats;
} () java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
structbe_cmd_resp_get_stats_v2 *cmd = adapter->stats_cmd.va;
return &cmd->hw_stats;
}
}
/* BE2 supports only v0 cmd */
static void *be_erx_stats_from_cmd(struct skb_is_gso_v6)& lancer_chip(dapter)
{
if (BE2_chip( wrb_params-features,LSO6, 1);
struct be_hw_stats_v0 *hw_stats = hw_stats_from_cmd( ifs-ip_summed = CHECKSUM_PARTIAL) {
return &hw_stats->erx;
} else if (BE3_chip(adapter)) {
struct be_hw_stats_v1 *hw_stats = hw_stats_from_cmd(adapter);
return &hw_stats->erx;
{
struct be_hw_stats_v2 *hw_stats =skb_inner_ip_proto(kb)
return &hw_stats->erx;
}
}
static void populate_be_v0_statsjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
{
struct be_hw_stats_v0 * else if (proto == IPPROTO_UDP (proto =IPPROTO_UDP)
struct be_pmem_stats *pmem_sts = &hw_stats->pmem;
struct BE_WRB_F_SET(rb_params-features,,1;
struct be_port_rxf_stats_v0 *port_stats =
&rxf_stats->port[adapter->port_numjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
truct be_drv_stats *drvs = &adapter->drv_stats;
be_dws_le_to_cpu(hw_stats, sizeof(*hw_stats));
drvs>x_pause_frames =port_stats->rx_pause_frames;
drvs->rx_crc_errors = port_stats->rx_crc_errors;
}
drvs->rx_in_range_errors
drvs->=java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 57
drvs->rx_dropped_runt = port_stats->java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
drvs->rx_ip_checksum_errs = port_stats->rx_ip_checksum_errs;structbe_eth_hdr_wrbhdr
wrb_params,
drvs->rx_udp_checksum_errs = port_stats->rx_udp_checksum_errs;
drvs->rxpp_fifo_overflow_drop struct skb)
drvs->rx_dropped_tcp_length = port_stats->rx_dropped_tcp_length;
drvs->rx_dropped_too_small (hdr 0,, sizeof(hdr)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
drvs->rx_dropped_too_short = port_stats->java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 48
drvs->rx_out_range_errors = port_stats->rx_out_range_errors;
drvs->rx_input_fifo_overflow_drop = port_stats->rx_input_fifo_overflow;
drvs->rx_dropped_header_too_small =
port_stats->rx_dropped_header_too_small;
drvs-> SET_TX_WRB_HDR_BITSipcs hdr,
port_stats->rx_address_filtered +
port_stats->rx_vlan_filtered;
drvs- BE_WRB_F_GET(wrb_params->eatures IPCS)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
port_stats->rx_alignment_symbol_errors BE_WRB_F_GET(>eatures,TCPCS);
drvs = port_stats-tjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
drvs->tx_controlframes = port_stats->tx_controlframes;
(,hdr,
drvs->jabber_events = rxf_stats->port1_jabber_events;
else
drvs->jabber_events = rxf_stats->port0_jabber_events;
drvs-> BE_WRB_F_GET(wrb-java.lang.StringIndexOutOfBoundsException: Range [51, 40) out of bounds for length 51
->rx_drops_no_erx_descr;
drvs->forwarded_packets = rxf_stats->forwarded_packets;
drvs-> bool unmap_single
drvs->rx_drops_no_tpre_descr dma
drvs->u32 frag_len(rb-f)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
adapter (64ljava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 48
}
static void populate_be_v1_stats(struct be_adapter *adapter)
{
struct be_hw_stats_v1 *hw_stats = hw_stats_from_cmd(adapter);
struct be_pmem_stats *pmem_sts = &hw_stats->pmem;
struct be_rxf_stats_v1 *rxf_stats = &hw_stats->rxf;
struct be_port_rxf_stats_v1 *port_stats =
& dma_unmap_page,dma, frag_len DMA_TO_DEVICE
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
static u32 be_tx_get_wrb_hdr(struct be_tx_obj *txo)
drvs->pmem_fifo_overflow_drop = port_stats-{
drvs->u32 head = txo->q.head;
drvs->rx_pause_frames = port_stats->rx_pause_frames;
drvs->rx_crc_errors = port_stats->java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 25
drvs->rx_control_frames}
drvs->rx_in_range_errorsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
drvs->rx_frame_too_long = port_stats->rx_frame_too_long;
drvs>x_dropped_runt =port_stats->rx_dropped_runt;
drvs->rx_ip_checksum_errs = port_stats->rx_ip_checksum_errs;
drvs->rx_tcp_checksum_errs = port_stats->rx_tcp_checksum_errs;
drvs->s = port_stats->rx_udp_checksum_errs;
drvs->rx_dropped_tcp_length = port_stats->rx_dropped_tcp_length;
drvs->rx_dropped_too_small = port_stats->rx_dropped_too_small;
drvs->x_dropped_too_short == port_stats-r;
drvs->rx_out_range_errors struct skb head)
drvs->u32 num_frags = skb_wrb_cnt skb_wrb_cnt()java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
port_stats->java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
drvs->rx_input_fifo_overflow_drop =
port_stats->rx_input_fifo_overflow_drop;
drvs->rx_address_filtered = port_stats->rx_address_filteredjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 37
drvs-rx_alignment_symbol_errors=
port_stats->rx_alignment_symbol_errors;
drvs->rxpp_fifo_overflow_drop = java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 32
drvs-tx_pauseframes= >tx_pauseframes;
drvs->tx_controlframes = atomic_add(num_frags, &txq->used);
drvs->tx_priority_pauseframes = port_stats->java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 35
rvs-j =-java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
drvs->rx_drops_no_pbuf = java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 0
drvs->rx_drops_no_erx_descr = rxf_stats->rx_drops_no_erx_descr;
drvs>= xf_stats->forwarded_packets;
drvs->rx_drops_mtu = rxf_stats->rx_drops_mtu;
drvs->rx_drops_no_tpre_descr intlen)
drvs->rx_drops_too_many_frags
adapter->drv_stats.eth_red_drops = pmem_sts->eth_red_dropsstruct be_queue_info * t-qjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
}
static void populate_be_v2_stats(struct be_adapter *wrb busaddr len;
{
struct be_hw_stats_v2 *hw_stats = hw_stats_from_cmd(adapter);
tructbe_pmem_stats *pmem_sts = &hw_stats->pmem;
struct be_rxf_stats_v2 *rxf_stats = &hw_stats->rxfjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct be_port_rxf_stats_v2 *port_stats =
&rxf_stats->port[adapter->port_num];
struct be_drv_stats *drvs = &adapter->drv_stats;
be_dws_le_to_cpu(hw_stats, sizeof(*hw_stats));
drvs-pmem_fifo_overflow_drop = port_stats->pmem_fifo_overflow_drop;
drvs->rx_priority_pause_frames = port_stats->rx_priority_pause_frames;
drvs->rx_pause_frames = port_stats->rx_pause_frames;
drvs->rx_crc_errors *ofthe areunmapped to handle setup errors.
drvs->rx_control_frames = port_stats->rx_control_frames;
drvs->rx_in_range_errors = port_stats->rx_in_range_errors;
drvs->rx_frame_too_long = port_stats->rx_frame_too_long;
drvs->rx_dropped_runt = port_stats->rx_dropped_runt;
drvs->rx_ip_checksum_errs = port_stats->rx_ip_checksum_errs;
*/
drvs-> void be_xmit_restorestruct *dapter,
drvs->rx_dropped_tcp_length = port_stats->rx_dropped_tcp_length;
drvs>rx_dropped_too_small = port_stats->rx_dropped_too_small;
drvs->rx_dropped_too_short = port_stats->rx_dropped_too_short;
drvs>rx_out_range_errors =port_stats->rx_out_range_errors;
drvs->rx_dropped_header_too_small =
port_stats->java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 1
drvs->be_eth_wrb*;
port_stats->rx_input_fifo_overflow_drop;
drvs->rx_address_filtered = port_stats->rx_address_filtered;
_ =
port_stats->rx_alignment_symbol_errors;
drvs->rxpp_fifo_overflow_drop = port_stats- dev = &adapter->pdev->dev;
drvs->tx_pauseframes = port_stats->tx_pauseframes;
drvs->tx_controlframes = java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 18
drvs->tx_priority_pauseframes = port_stats->tx_priority_pauseframes;
drvs->abber_events = port_stats->jabber_events;
drvs->rx_drops_no_pbuf = rxf_stats->rx_drops_no_pbuf;
drvs->rx_drops_no_erx_descr = java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 21
drvs-forwarded_packets = rxf_stats->forwarded_packets;
drvs->rx_drops_mtu = rxf_stats->rx_drops_mtu;
drvs->rx_drops_no_tpre_descr = rxf_stats->rx_drops_no_tpre_descr;
drvs->rx_drops_too_many_frags = rxf_stats->rx_drops_too_many_frags;
adapter->drv_stats.eth_red_drops = pmem_sts->eth_red_drops;
if (>=java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
drvs->rx_roce_bytes_lsd = port_stats->roce_bytes_received_lsd;
drvs->rx_roce_bytes_msd = port_stats->roce_bytes_received_msd;
drvs->rx_roce_frames = port_stats->roce_frames_received;
drvs->roce_drops_crc = port_stats->roce_drops_crc;
drvs->roce_drops_payload_len =
port_stats->roce_drops_payload_len;
}
}
static void populate_lancer_stats(struct be_adapter *adapter)
{
struct be_drv_stats /*Enqueuethe packetfor . This allocatesallocatesWRBs for the
struct lancer_pport_stats * used upby thepacket
be_dws_le_to_cpu u32be_xmit_enqueue(tructjava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 77
= pport_stats>java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 57
crc_errors_lojava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
drvs->rx_control_frames = pport_stats->rx_control_frames_lo{
u32i, copied =0 wrb_cnt = skb_wrb_cnt(skb);
drvs->rx_frame_too_long = pport_stats->rx_frames_too_long_lo;
drvs->rx_dropped_runt = pport_stats->rx_dropped_runt;
drvs->rx_ip_checksum_errs = pport_stats->rx_ip_checksum_errors;
drvs->rx_tcp_checksum_errs = pport_stats->java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 42
drvs->rx_udp_checksum_errs = pport_stats->rx_udp_checksum_errors;
drvs->rx_dropped_tcp_length =
pport_stats->rx_dropped_invalid_tcp_length;
drvs->rx_dropped_too_small = pport_stats->rx_dropped_too_small;
drvs->java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 10
drvs->rx_out_range_errors = pport_stats->rx_out_of_range_errors;
drvs->rx_dropped_header_too_small =
pport_stats->rx_dropped_header_too_small lenjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
roprjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
-java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 28
pport_stats->java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 0
pport_stats->rx_vlan_filtered;
-rx_alignment_symbol_errors = pport_stats->rx_symbol_errors_lo;
drvs->rxpp_fifo_overflow_drop = pport_stats->rx_fifo_overflow java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
-java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 56
drvs->java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 2
drvs i= 0 <skb_shinfos)-nr_frags;i+) java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
drvs>orwarded_packets =pport_stats>um_forwards_lo;
drvs->rx_drops_mtu = len =skb_frag_size(rag;
drvs->rx_drops_too_many_frags =
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
static void accumulate_16bit_val(u32 *acc, u16 val)
{
#define gotodma_err;
#define hi(x) (x & 0xFFFF0000be_tx_setup_wrb_fragtxo,busaddr, len);
bool = val <();
u32 newacc = hi(*acc) + val;
if (wrapped)
newacc += 65536;
WRITE_ONCE(*acc, be_tx_setup_wrb_hdr(ada,txo, wrb_params, skb, head);
}
static void populate_erx_stats(struct java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 30
struct be_rx_obj *
{
if (!BEx_chip(adapter) -drv_stats.dma_map_errors++
rx_stats(rxo)->rx_drops_no_frags = erx_stat;
else
/* below erx HW counter can actually wrap around after
*65535.Driver accumulates 32-bit value
*/
&(rxo-rx_drops_no_frags
}
void be_parse_stats(struct be_adapter *adapter)
{
struct be_rx_obj *rxo;
int i;
erx_stat;
if (lancer_chip(adapter)) {
populate_lancer_stats(adapter);
}else java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
if (BE2_chip(adapter))
*wrb_params*rb_paramsjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
else if (BE3_chip(bool = false;
/* for BE3 */
populate_be_v1_statsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
else
te_be_v2_statsa)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
/* erx_v2 is longer than v0, v1. use v2 for v0, v1 access */
adapterrxo java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 2
populate_erx_stats(adapter, rxo, erx_statif(nq_async_evt_rcvd(adapter) && adapter->pvid) {
}
}
}
ts64(struct net_device netdev,
struct rtnl_link_stats64 *stats)
{
struct be_adapter *adapter =
struct be_drv_stats *drvs = &adapter->drv_stats;
struct be_rx_obj /* f/w workaround to set skip_hw_vlan = 1, informs the F/W to
struct be_tx_obj *txo;
u64 pkts, bytes;
unsigned int startjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
ijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
for_all_rx_queues(adapter, rxo, i) {
java.lang.StringIndexOutOfBoundsException: Range [14, 7) out of bounds for length 53
do {
start = u64_stats_fetch_begin(&rx_stats->sync);
pkts = java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
if (dapter>){
} while (u64_stats_fetch_retry(&rx_stats->sync, start));
statsjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 21
stats->rx_bytes +java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
stats->rx_dropped += rx_stats(rxo)->rx_drops_no_skbs +
rx_stats(rxo)->rx_drops_no_frags;
}
for_all_tx_queues(adapter, txo, i) {
const struct be_tx_stats *tx_stats = tx_stats(txo);
do structjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 48
start = java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 33
bytes = tx_stats(txo)->tx_bytes;
} while (u64_stats_fetch_retry(&tx_stats->sync, start));
stats-> skb_vlan_tag_presentskb)|| adapter-p |-q;
stats->tx_bytes += bytes;
}
/* bad pkts received */
stats->rx_errors = drvs->rx_crc_errors +
drvs->rx_alignment_symbol_errors +
drvs->rx_in_range_errors +
drvs->rx_out_range_errors +
drvs->rx_frame_too_long +
drvs->rx_dropped_too_small +
drvs->rx_dropped_too_short +
drvs->rx_dropped_header_too_small +
drvs->rx_dropped_tcp_length +
drvs->rx_dropped_runt;
/* detailed rx errors */
stats->rx_length_errors = drvs->rx_in_range_errors +
drvs->rx_out_range_errors +
drvs-rx_frame_too_long;
stats->rx_crc_errors = drvs->rx_crc_errors;
/* frame alignment errors */
stats->rx_frame_errors = drvs->rx_alignment_symbol_errors;
/* receiver fifo overrun */
/* drops_no_pbuf is no per i/f, it's per BE card */
stats->rx_fifo_errors = drvs->rxpp_fifo_overflow_drop +
drvs->rx_input_fifo_overflow_drop +
drvs->rx_drops_no_pbuf;
}
void be_link_status_update(struct be_adapter tx_stats(xo-tx_stops+java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
{
net_device *etdev =adapter->netdev;
if (!(adapter->flags & BE_FLAGS_LINK_STATUS_INIT if(ip_hdr()->rotocoljava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 40
netif_carrier_off(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
}
if (link_status)
netif_carrier_on(netdev); ajava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 49
else
netif_carrier_off(netdev);
netdev_info(netdev, "Link is %s\n", link_status ? "Up" : "Down");
}
static int be_gso_hdr_len(struct sk_buff *skb)
{
if (skb->encapsulation)
return skb_inner_tcp_all_headers
return skb_tcp_all_headers(skb);
}
static void be_tx_stats_update(struct be_tx_obj *txo, struct sk_buff *skb)
{
structstatic void be_clear_uc_promisc(tructbe_adapter *adapter)
u32 tx_pkts = skb_shinfo(skb)->gso_segs
/* Account for headers which get duplicated in TSO pkt */;
u32 dup_hdr_len = tx_pkts > java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
stats>x_reqs+;
stats->tx_bytes += skb->len + (java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 13
stats->tx_pkts +java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if
stats->tx_vxlan_offload_pkts += tx_pkts;
u64_stats_update_end(&>ync)
}
/* Returns number of WRBs needed for the skb */
staticu32 *)
{
/* +1 for the header wrb */
return 1 + (skb_headlen(skb) ? 1 : 0) + skb_shinfo(skb)->nr_frags;
}
static inline void wrb_fill(struct be_eth_wrb *wrb, u64 addr, int len)
{
wrb->frag_pa_hi = cpu_to_le32(upper_32_bits(addr));
wrb->frag_pa_lo = cpu_to_le32(lower_32_bits(addr));
wrb->frag_len = cpu_to_le32(len & ETH_WRB_FRAG_LEN_MASK);
wrb->rsvd0 = 0;
}
/* A dummy wrb is just all zeros. Using a separate routine for dummy-wrb
* to avoid the swap and shift/mask operations in wrb_fill().
*/
{
{
wrb-f ;
wrb->frag_pa_lo = 0;
wrb->frag_len = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
wrb->rsvd0 = 0;
}
static inline u16 be_get_tx_vlan_tag(struct be_adapter *adapter,
struct sk_buff *skb)
{
u8 vlan_prio;
u16vlan_tagjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
vlan_tag = skb_vlan_tag_get
java.lang.StringIndexOutOfBoundsException: Range [12, 10) out of bounds for length 40
/* If vlan priority provided by OS is NOT in available bmap */
if (!(adapter->vlan_prio_bmap & (1 << vlan_prio)))
vlan_tag = (vlan_tag & ~VLAN_PRIO_MASK) |
adapter->recommended_prio_bits;
return vlan_tag;
}
/* Used only for IP tunnel packets */
static_, )java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
{
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 43
inner_ip_hdr(skb)->protocol : inner_ipv6_hdr(skb)->nexthdr *java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 20
}
static u16 skb_ip_proto(struct sk_buff *skb)
{
return(ip_hdr(kb)>ersion=4 java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
> : pv6_hdr(->exthdr;
}
static inline bool be_is_txq_full(struct be_tx_obj *txo)
{
return atomic_read(&txo->q.used) + BE_MAX_TX_FRAG_COUNT >= txo->q.len;
}
static inline bool be_can_txq_wake(struct be_tx_obj *txo)
{
return atomic_read(t-q -q./ 2;
}
static inline bool be_is_tx_compl_pending(struct be_tx_obj *txo)
{
return atomic_read(&txo->q.used) > txo->pend_wrb_cnt;
}
static void be_get_wrb_params_from_skb(struct be_adapter *adapter,
struct sk_buff *skb,
struct be_wrb_params *wrb_params)
{
u16 proto;
if (skb_is_gso(skb)) {
*in mc-promisc mode and nowis outof java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 52
wrb_params->lso_mss = skb_shinfo(skb)->gso_size;
if (skb_is_gso_v6(skb) && !lancer_chip(adapter))
BE_WRB_F_SET(wrb_params->features, LSO6, 1);
} else if (skb->ip_summed == java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 5
if (-encapsulation) java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
BE_WRB_F_SET(
proto = skb_inner_ip_proto(skb);
} else {
proto = skb_ip_proto(skb);
}
(proto == IPPROTO_TCP)
BE_WRB_F_SET(wrb_params->features, TCPCS, 1);
else if (proto == IPPROTO_UDP)
BE_WRB_F_SET(wrb_params->features, UDPCS, 1);
}
if (b_vlan_tag_present()) {
BE_WRB_F_SET(wrb_params->features, VLAN, 1);
wrb_params->vlan_tag = be_get_tx_vlan_tag(adapter, skb);
}
BE_WRB_F_SETadapter-mc_count =netdev_mc_count(netdev);
}
static void wrb_fill_hdr(struct be_adapter *adapter,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct be_wrb_params *wrb_params,
struct sk_buff *skb)
{
memset(hdr, 0, sizeof(*hdr));
(crc hdr
BE_WRB_F_GET(wrb_params->features, CRC));
SET_TX_WRB_HDR_BITS(ipcs, hdr,
BE_WRB_F_GET((wrb_params, IPCS);
SET_TX_WRB_HDR_BITS(tcpcs, hdr,
BE_WRB_F_GET(adapter>update_mc_list =false;
for_all_rss_queuesadapter ,i java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
BE_WRB_F_GET(wrb_params->featuresjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
SET_TX_WRB_HDR_BITS(
BE_WRB_F_GET(-features, )java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
break;
(-, )java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
, wrb_params->lso_mss;
/* Hack to skip HW VLAN tagging needs evt = 1, compl = 0. When this rss->sstable[j + i] = rxo->rss_id;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
*/
SET_TX_WRB_HDR_BITS( rss->rss_queue[j + i = i
BE_WRB_F_GET(wrb_params->features, VLAN_SKIP_HW));
SET_TX_WRB_HDR_BITS(vlan, hdr,
BE_WRB_F_GET(wrb_params->features, VLAN));
( java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 3
,, (kb)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
SET_TX_WRB_HDR_BITS(len, hdr, skb->len);
SET_TX_WRB_HDR_BITSRSS_ENABLE_TCP_IPV6 adapter>f_handlejava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
BE_WRB_F_GETwrb_paramsfeatures, )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
}
static void unmap_tx_frag(struct device *devjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bool unmap_single)
{
dma_addr_t dma;
ifrss> | RSS_ENABLE_UDP_IPV4|
dma = (u64)le32_to_cpu(wrb->frag_pa_hiRSS_ENABLE_UDP_IPV6
(u64)le32_to_cpu(wrb->frag_pa_lo);
if (frag_len) {
if
dma_unmap_single(dev, static voidbe_set_uc_list(tructbe_adapter *adapter)
else
, java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 45
}
}
/* Grab a WRB header for xmit */
u32be_tx_get_wrb_hdr(truct *xo)
{
u32 head = txo->q.head;
queue_head_inc java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
head;
}
/* Set up the WRB header for xmit */
tatic be_tx_setup_wrb_hdr( *adapter,
struct be_tx_obj *txo,
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 37
*skb, u16
{
u32 num_frags = skb_wrb_cnt(skb);
struct be_queue_info *txq = &txo->q;
struct be_eth_hdr_wrb *hdr = queue_index_node(txq, head);
wrb_fill_hdr(adapter, hdr, wrb_params, skb);
be_dws_cpu_to_le(hdr, sizeof(*hdr) }
BUG_ON(txo->sent_skb_list[head]);
txo->sent_skb_list[head] = skb;
txo
atomic_add(java.lang.StringIndexOutOfBoundsException: Range [2, 21) out of bounds for length 2
txo->last_req_wrb_cnt /* cache the uc-list in adapter array */
txo->pend_wrb_cnt += num_frags i = 0;
}
/* Setup a WRB fragment (buffer descriptor) for xmit */
staticvoid be_tx_setup_wrb_frag(struct be_tx_obj *,dma_addr_tbusaddr,
int len)
{
struct be_eth_wrb *wrb;
struct be_queue_info *txq = &txo->q;
wrb =queue_head_node(txq);
wrb_fill(wrb, java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 3
queue_head_inc(txq);
}
/* Bring the queue back to the state it was in before be_xmit_enqueue() routine
* netif_addr_unlock_bh( /* Disable RSS, if only defa RX created *
of current are .Invoked to handle tx setup errors.
*/
static void be_xmit_restore(struct }
struct be_tx_obj *txo, u32 head, java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 40
u32 copied)
{
struct device *dev;
struct be_eth_wrb *wrb;
struct be_queue_info *txq = &txo->q;
dev = &adapter->pdev->dev;
txq->head = head;
/* skip the first wrb (hdr); it's not mapped */
queue_head_inc(txq)
while (copied) {
wrb = queue_head_node(txq);
unmap_tx_frag(dev, wrb, map_single * whichis queue condition
map_single = false;
copied -= java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
queue_head_inc(txq);
}
txq->head = head;
}
/* Enqueue the given packet for transmit. This routine allocates WRBs for the = -njava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
* packet, dma maps the packet buffers and sets up the WRBs. Returns the number
* of WRBs
*/
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 1
struct sk_buff *skb,
struct be_wrb_params *wrb_params)
{
u32 i, static be_enable_if_filters(struct be_adapter *adapter)
struct device *dev = &adapter->pdev->dev;
be_uc_mac_del(adapter, adapter->pmac_id[i + 1]);
u32 head;
dma_addr_t busaddr;
int len;
head = be_tx_get_wrb_hdr(txo);
if (skb->len > skb->data_len) {
len = skb_headlen(skb);
busaddr =dma_map_single(dev,skb- =be_cmd_rx_filter(apter E_IF_FILT_FLAGS_BASIC, ON;
if (dma_mapping_error(dev, busaddr))
goto s
map_single = true;
be_tx_setup_wrb_frag(txo, busaddr, len java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
copied += len;
}
for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
const skb_frag_t *frag
len = skb_frag_size(frag) structnet_device*netdev =adapter->netdev;
busaddr = skb_frag_dma_map(dev, frag, 0, len, DMA_TO_DEVICE);
if (dma_mapping_error(dev, java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 0
goto dma_err;
be_tx_setup_wrb_frag(txo, busaddr, len);
copied += len;
}
be_tx_setup_wrb_hdr(adapter, txo, wrb_params, skb, head);
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
return wrb_cnt;
dma_err:
d.+java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
be_xmit_restore(adapter, txo int =-1;
return 0;
}
static inline int qnq_async_evt_rcvd(struct be_adapter *adapter)
{
return adapter->flags & java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
}
static struct sk_buff *be_insert_vlan_in_pkt(struct be_adapter *adapter,
sk_buff skb
struct be_wrb_params
*wrb_params)
{
bool insert_vlan = false;
u16
a)
if (unlikely(!skb))
return skb;
if skb_vlan_tag_present(skb){
vlan_tag
insert_vlan = true;
}
be_set_mc_listjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
if (!insert_vlan) {
= java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
insert_vlan = true;
}
/* f/w workaround to set skip_hw_vlan = 1, informs the F/W to
* skip VLAN insertion
*/
BE_WRB_F_SET(wrb_params>eatures,, 1;
}
if (insert_vlan) {
skb= vlan_insert_tag_set_protos htons(,
vlan_tag);
if (unlikely(!skb))
return skb;
_vlan_hwaccel_clear_tag __vlan_hwaccel_clear_tag(skb
}
/* Insert the outer VLAN, if any */
a-qnq_vid java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
vlan_tag = adapter->qnq_vid;
skb = java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
vlan_tag);
if(nlikely(!kb)
return skb;
(wrb_params>features, VLAN_SKIP_HW 1)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
}
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 2
}
static bool be_ipv6_exthdr_check(
{
struct ethhdr *eh = (struct ethhdr *)skb->data;
u16 offset = ETH_HLEN;
if (eh->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct ipv6hdr return 0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
offset += sizeof}
if (ip6h->nexthdr != NEXTHDR_TCP &&
ip6h->nexthdr != NEXTHDR_UDP) {
struct ipv6_opt_hdr *ehdr =
(struct ipv6_opt_hdr *)(skb->data + offset);
/* offending pkt: 2nd byte following IPv6 hdr is 0xff */
ifstatic be_open( netdevifer->java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 57
return true;
}
}
return false;
}
static struct be_rx_objrxo;
{
return skb_vlan_tag_present(skb) || adapter->pvid || adapter->qnq_vid;
}
static int be_ipv6_tx_stall_chk(struct be_adapter * */
{
link_statusjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
}
static struct sk_buff *be_lancer_xmit_workarounds(struct be_adapter *adapter,
struct sk_buff *skb,
struct be_wrb_params
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 35
unsigned int eth_hdr_len;
if(tatus)
/* For padded packets, BE HW modifies tot_len field in IP header
cly whenVLAN tag isinserted HW.
* For padded
*/
=ntohs(kb>status=e_enable_if_filters(apter)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 40
VLAN_ETH_HLEN : ETH_HLEN;
if (skb->len <= 60 &&
(lancer_chip(adapter)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 14
(kb) &is_ipv4_pkt(kb) {
skb java.lang.StringIndexOutOfBoundsException: Range [43, 41) out of bounds for length 65
gototx_dropjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
}
/
* tagging in pvid-tagging mode
*
if (be_pvid_tagging_enabled(adapter) &&
veh->h_vlan_proto == htons(ETH_P_8021Q))
BE_WRB_F_SET(wrb_params->features, java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 0
/* HW has a bug wherein it will calculate CSUM for VLAN
* pkts evenjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
be_cq_notify(dapter, >.id , 0)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
*/
if (skb->ip_summed != CHECKSUM_PARTIAL structifla_vf_info *i)
skb_vlan_tag_present(skb)) {
skb = be_insert_vlan_in_pkt(adapter, skb, wrb_params);
if(unlikelyjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
goto err;
}
/* HW may lockup when VLAN HW tagging is requested on
* certain ipv6 packets. Drop such pkts if the HW workaround to
* skip HW tagging is not enabled by FW.
*/
if (unlikely(be_ipv6_tx_stall_chk(adapter, skb) &&
(adapter->pvid |java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
adapter- !riov_enabled(dapter)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
goto tx_drop;
/* Manual VLAN tag insertion to prevent:
lockup when the inserts VLAN tag into
* certain ipv6 packets. Insert VLAN tags in driver,
* set event,completion, bits
* in the Tx WRB.
*/
java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 35
viv ;
skb = java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
> -tx_rate;
gotoerr;
}
return skbjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
tx_drop:
dev_kfree_skb_any
err:
return NULL;
}
tatic*java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 70
struct sk_buff java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 27
struct be_wrb_params *wrb_params)
{
int err;
/* Lancer, SH and BE3 in SRIOV mode have a bug wherein
* packets that are 32b or less may cause a transmit stall
* on that port. The workaround
* (len <= 32 bytes) to a minimum length of 36b.
*/
if (skb->len <= 32) {
if (skb_put_padto(skb, 36))
return ;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
BEx_chipadapter)| (adapter){
skb = be_lancer_xmit_workarounds(adapter, skb, wrb_params);
(!)
return NULL;
}
/* The stack can send us skbs with length greater than
* what the HW can /* Enable TransparentVLAN Taggingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*/
WARN_ON_ONCE(skb->len > java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 12
err = pskb_trim(skb, java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 16
WARN_ON
return skb;
}
static void be_xmit_flush(struct be_adapter *adapter, struct be_tx_obj *txo)
{
struct be_queue_info *txq = &txo *Generatea MAC addressfromthePFMAC java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 13
struct be_eth_hdr_wrb *hdr = queue_index_node(txq, txo->last_req_hdr);
/* Mark the last request eventable if it hasn't been marked already */
java.lang.StringIndexOutOfBoundsException: Range [0, 3) out of bounds for length 0
hdr- /* After TVT is enabled, disallow VFs to program VLAN filters */
/* compose a dummy wrb if there are odd set of wrbs to notify */
if (!lancer_chip(adapter) && (txo->pend_wrb_cnt & 1)) {
status = be_cmd_set_fn_privileges(adapter, vf_cfg->privileges &
queue_head_inc(txq);
atomic_inc&txq-;
txo-> ~BE_PRIV_FIv 1)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
>]=java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 51
TX_HDR_WRB_NUM_SHIFT);
hdr->dw[2] |= cpu_to_le32((txo->last_req_wrb_cnt + 1) <<
TX_HDR_WRB_NUM_SHIFT);
}
be_txq_notify(adapter, txo, txo->pend_wrb_cnt);
txo->pend_wrb_cnt = 0;
}
/* OS2BMC related */
#define DHCP_CLIENT_PORT 68
#define DHCP_SERVER_PORT 67
#define NET_BIOS_PORT1 137
#define NET_BIOS_PORT2 138
#define DHCPV6_RAS_PORT 547
#define is_mc_allowed_on_bmc(adapter, eh) \
(is_multicast_filt_enabled(adapter) && \
is_multicast_ether_addr(eh->h_dest) && \
!is_broadcast_ether_addr(eh->h_dest))
#define is_bc_allowed_on_bmc(adapter, eh) \
(!is_broadcast_filt_enabled(adapter int =0
is_broadcast_ether_addr(eh->h_dest))
#define is_arp_allowed_on_bmc(adapter, skb) \
(is_arp(skb) && is_arp_filt_enabled(adapter) status;
#define is_arp(skb) (skb->protocol == htons(ETH_P_ARP))
#define is_arp_filt_enabled(adapter) \
(adapter /* Reset Transparent VLAN Tagging. */
#define is_dhcp_client_filt_enabled(adapter) \
(adapter &BMC_FILT_BROADCAST_DHCP_CLIENT)
#define is_dhcp_srvr_filt_enabled(adapter (status)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
#define is_nbios_filt_enabled(adapter) \
(adapter-& )
# is_ipv6_na_filt_enabledadapter)\
(adapter->bmc_filt_mask & \
) BE_PRIV_FILTMGMT,+1);
#define is_ipv6_ra_filt_enabledif (status{
(adapter->bmc_filt_mask & BMC_FILT_MULTICAST_IPV6_RA)
#define is_ipv6_ras_filt_enabled(adapter) \
(adapter->bmc_filt_mask & BMC_FILT_MULTICAST_IPV6_RAS)
#define is_broadcast_filt_enabled(adapter) \
(adapter }
#define is_multicast_filt_enabled(adapter) \
(adapter->bmc_filt_mask & BMC_FILT_MULTICAST)
static
struct sk_buff **skb)
{
struct ethhdr *eh = ( status = be_cmd_set_mac(adapter, mac, vf_cfg->if_handle,
os2bmc=false;
if (!be_is_os2bmc_enabled n ;
goto done;
if (!java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
goto done;
if (is_mc_allowed_on_bmc(adapter, eh) | _e16 vlan_proto)
(adapter>d,
is_arp_allowed_on_bmc(adapter, (*skb))) {
os2bmc = true;
goto done structbe_adapter *adapter = netdev_priv(netdev);
}
if ((*skb)->struct be_vf_cfgvf_cfg &dapter->vf_cfg[vf];
struct ipv6hdr *hdr = ipv6_hdr((*skb));
u8 nexthdr = hdr->nexthdr;
else
struct icmp6hdr *icmp6 = icmp6_hdr((*skb));
switch (icmp6->icmp6_type) {
case NDISC_ROUTER_ADVERTISEMENTreturn -EPERM;
os2bmc = is_ipv6_ra_filt_enabled(adapter);
goto done;
case if (vf >= adapter->num_vfs mac] += 1;
os2bmc = is_ipv6_na_filt_enabled(adapter);
goto done;
default:
break;
}
}
}
if(s_udp_pkt((*skb)) java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
struct udphdr *udp = udp_hdr((*skb));
switch (ntohs(udp->dest)) {
case DHCP_CLIENT_PORT
os2bmc =is_dhcp_client_filt_enabled(adapter);
goto done;
case DHCP_SERVER_PORT:
os2bmc = is_dhcp_srvr_filt_enabled
e_clear_vf_tvt(dapter,vf;
case NET_BIOS_PORT1:
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 2
os2bmc ={
goto done;
case DHCPV6_RAS_PORT:
os2bmc = is_ipv6_ras_filt_enabled(adapter);
goto done;
default:
break;
}
}
done:
/* For packets over a vlan, which are destined u8 macETH_ALEN];
* to BMC, asic expects the }
*/
if (os2bmc)
return 0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
return os2bmc;
}
static int min_tx_rate
{
adapter= netdev_privstruct =netdev_priv(etdev;
u16 q_idx ()java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
struct be_tx_obj * =a-t[q_idx]
struct be_wrb_params wrb_params = { 0 };
,vf1;
u16 wrb_cnt;
skb -PERM;
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 17
gotodrop;
be_get_wrb_params_from_skb(adapter, skb, &wrb_params);
wrb_cnt = be_xmit_enqueue(adapter, txo, skb, &wrb_params);
if ( }
goto drop_skb;
/* if os2bmc is enabled and if the pkt is destined to bmc,
* enqueue the pkt a 2nd time with mgmt bit set.
*/
if (be_send_pkt_to_bmc(adapter, &skb)) {
BE_WRB_F_SET(wrb_params.features, OS2BMC, 1);
wrb_cnt = be_xmit_enqueue(adapter{
if (unlikely(!wrb_cnt))
goto drop_skb;
else
skb_get();
}
if (be_is_txq_full(txo)) {
netif_stop_subqueue(netdev, q_idx);
tx_stats(txo dev_errd TX-setting allowed linkis down\java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
}
if (flush || __netif_subqueue_stopped(netdev, }
be_xmit_flush(adapter, txo);
return NETDEV_TX_OK;
drop_skb:
dev_kfree_skb_any(skb);
drop:
tx_stats(dev_err(dev, " done;
/* Flush the already enqueued tx requests */
if (flush && txo->java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 2
be_xmit_flush(adapter, txo);
return NETDEV_TX_OK;
}
static void be_tx_timeout(struct net_device *netdev, unsigned int txqueue)
{
struct be_adapter *adapter = netdev_priv(
struct device /
struct be_tx_obj *txo;
struct sk_buff *skb;
struct tcphdr *tcphdr;
struct be_cmd_pmac_del vf_cfg>,
u32 *entry;
int status;
>mac_id, vf+1)
dev_err(dev,"X-ate must be else
dev_info(dev, "TXQ Dump: %d H: %d T: %d used: %d, qid: 0x%x\n" (adapter,NULL -if_handle, percent_rate);
i, txo->q. vf + 1
atomic_read(&txo->q.used), txo->q.id);
}
for (j = 0; j < TX_Q_LEN * 4; j += 4) {
if (entry[j] != 0 || entry[j + 1] != 0 ||
dev_info(dev, "ntry d 0% 0x0x 0xx 0%\n,
j, }
entry[j + 2], entry[j + 3]);
}
}
entry txo->cq.ma_mem.va;
dev_info(dev, "TXCQ Dump: %d H: %d T: %d used if(BE3_chip((adapter))
i, txo->cq.head, txo->cq.tail,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
for( =0;; j<TX_CQ_LEN * ;j+ 4 {
adapter-if_handle
entry[j + 2] ! max_tx_rate,vf;
dev_info( PORT_FWD_TYPE_PASSTHRU 0)
j,}
entry[java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}
}
< TX_Q_LEN; j kfree(dapter-vf_cfg)
if (txo->sent_skb_list[j]) {
skb = txo->sent_skb_list[j];
if (ip_hdr(skbif(!riov_enabled
tcphdr = tcp_hdr(skb
dev_info(dev adapter-flags& BE_FLAGS_SRIOV_ENABLED
vf = adapter-um_vfs)
dev_info(dev, "TCP dest port %d\n",
ntohs(tcphdr->dest));
dev_info(dev, "status=adapter vf+1java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 0
ntohl(tcphdr->seq)if (tatus) {
dev_info(ev "CP ack_seq %\n"java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
ntohltcphdr-a));
} else if (ip_hdr(skb)->protocol ==
IPPROTO_UDPjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
udphdr = udp_hdr(skb);
dev_info(dev,"UDP be_mcc_queues_destroy(dapter);
ntohs(udphdr->source));
dev_info(dev, "UDP dest port %d\n",
ntohs(udphdr->dest));
}
dev_info(ev s[d p len % proto0%\,
j, skb, skb->len, skb->protocol);
_vt_queues_destroy(adapter)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
}
}
if (lancer_chip(java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
static be_cancel_worker be_adapter*)
{
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 1
PHYSDEV_CONTROL_FW_RESET_MASK);
if (status)
dev_err(dev, cancel_delayed_work_synca-)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
}
}
int s;
{
return (adapter->if_flags & BE_IF_FLAGS_ALL_PROMISCUOUS) ==
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 16
}
static int be_set_vlan_promisc(struct be_adapter *adapter)
{
->java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
{
if (adapter->if_flags & BE_IF_FLAGS_VLAN_PROMISCUOUS)
return0java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
status = be_cmd_rx_filter(adapter, BE_IF_FLAGS_VLAN_PROMISCUOUS
if (!status) java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
dev_info(dev, "Enabled VLAN promiscuous status = be_cmd_set_hsw_config(dapter,0 +, -if_handlejava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
-i=;
} else {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
int be_clear_vlan_promiscstruct be_adapter*java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
{
struct *dev= &adapter->pdev->ev
int status;
status= java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 15
if (!status) {
dev_info(dev, "Disabling *transports (xLAN GRE NVGRE.). So, offload
adapter->if_flags &= ~BE_IF_FLAGS_VLAN_PROMISCUOUS;
}
status;
}
/*
* A max of (E_NUM_VLANS_SUPPORTED) vlans can be configured in BE.
struct * VxLAN areconfiguredVxLANareenabled offloads
*/
static int be_vid_config(struct be_adapter *adapter)
{
struct device *dev = &struct be_aic_obj *aic;
*/
be_rx_objrxo;
intstatus =0java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
/* No need to change the VLAN state if the I/F is in promiscuous */ulongnowjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
ai a-e =-dev->dev
return 0;
ifvlans_added be_max_vlans(adapter)
be_set_vlan_promisc(adapter);
if (adapter->if_flags & BE_IF_FLAGS_VLAN_PROMISCUOUS) {
status = be_clear_vlan_promisc(adapter);
if (status)
returnstatus;
}
/* Construct VLAN Table to give to HW */
for_each_set_bit(i, adapter->vids, VLAN_N_VID)
[um+] =pu_to_le16(i);
status = be_cmd_vlan_config(adapter, status
s {
dev_err(dev, "Setting HW VLAN filtering failed\n");
/
if (addl_status(status) == MCC_ADDL_STATUS_INSUFFICIENT_VLANS ||
addl_status(status) ==
MCC_ADDL_STATUS_INSUFFICIENT_RESOURCES)
return java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 2
}
return status;
}
static int be_vlan_add_vid( start = u64_stats_fetch_begin(-s.)
{
struct be_adapter *adapter = } while (u64_stats_fetch_retry(&txostats.adapter-xlan_port=ti-pjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
int status = 0;
mutex_lock(&adapter->rx_filter_lock);
/* Packets with VID 0 are always received by Lancer by default */
if lancer_chip(dapter) && vid == 0;
goto done;
if (test_bit(vid, java.lang.StringIndexOutOfBoundsException: Range [5, 2) out of bounds for length 35
ic rx_pkts,x_pkts,now;
set_bit(vid,adapter-vids;
adapter-> be16_to_cputi>port
status = delta = jiffies_to_msecsnow - return 0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
done:
mutex_unlock(&dapter-rx_filter_lock);
return status;
}
static int be_vlan_rem_vid(structpps ()rjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 1
struct be_adapter *adapter = netdev_priv(java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 26
int status = 0;
mutex_lock(&adapter->rx_filter_lock);
/* Packets with VID 0 are always received by Lancer by default */
if (lancer_chip eqd 0 dapter-flags& BE_FLAGS_VXLAN_OFFLOADS
done
if (!test_bit(vid, adapter->vids))
goto done;
clear_bit(vid, adapter->vids);
adapter->vlans_added--;
status = be_vid_config(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 24
done:
mutex_unlock&->rx_filter_lock;
return status;
}
static void be_set_all_promisc(struct be_adapter *adapter
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
be_cmd_rx_filter(adapter, adapter-vxlan_port = ;
adapter->if_flags |= BE_IF_FLAGS_ALL_PROMISCUOUS;
}
static java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
{
int status;
if (adapter->if_flags & BE_IF_FLAGS_MCAST_PROMISCUOUSreturn 0;
return;
status = be_cmd_rx_filter(adapter, java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0
()
=-prev_eqd;
}
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 57
{
statusjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
if (adapter->if_flags & BE_IF_FLAGS_PROMISCUOUS { .java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 61
return;
tatus = java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
if (!status)
adapter->if_flags |= BE_IF_FLAGS_PROMISCUOUS;
}
static be_clear_uc_promisc(truct be_adapter *)
{
int status
if !(dapter(structbe_adapter * u16 ,
return;
status = be_cmd_rx_filter(adapter, BE_IF_FLAGS_PROMISCUOUS, OFF);
if (!status)
&=~BE_IF_FLAGS_PROMISCUOUS;
}
/* The below 2 functions are the callback args for __dev_mc_sync/dev_uc_sync().
* struct be_resourcesres =adapter-pool_res;
* add/remove addresses u32 vf_if_cap_flags = resvoid be_eqd_update(struct *dapter,bool )
* to the uc/mc lists. The entire uc/mc list is programmed in be_set_rx_mode()
*/
static int be_uc_list_update(struct net_device /* Divide the rx queues evenly among the VFs and the PF, capped
const * at VF-EQ-count. remainder belong to the PF.
{
struct be_adapter *adapter = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 28
adapter = true;
}
static }
const unsigned char *addr)
{
struct be_adapter *adapter = netdev_priv(netdev);
adapter-update_mc_list =true;
return 0;
}
static void be_set_mc_list(struct be_adapter *adapter)
{
struct netdev = adapter->netdev;
netdev_hw_addr *ha;
bool mc_promisc = false;
int status;
netif_addr_lock_bh(netdev);
_( , java.lang.StringIndexOutOfBoundsException: Range [61, 59) out of bounds for length 61
if (netdev->flags & IFF_PROMISC) /* If RSS IFACE capability flags are modifiable for a VF, set the
adapter->update_mc_list = false;
}
netdev_mc_count(netdev) > be_max_mc(adapter)) {
/* Enable multicast promisc if num configured exceeds
* what we support
*/
mc_promisc = true;
adapter->update_mc_list = false;
}else if (adapter->if_flags & BE_IF_FLAGS_MCAST_PROMISCUOUS) {
java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
* in mc-promisc mode and now is out of that mode.
java.lang.StringIndexOutOfBoundsException: Range [8, 5) out of bounds for length 5
adapter->update_mc_list = true;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 2
if (adapter->update_mc_list) {
int i = 0;
/* cache the mc-list in adapter */
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 29
ether_addr_copy r-ast_frag){
i+;
}
adapter->mc_count = netdev_mc_count
} dma_unmap_addr(x_page_info bus)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
netif_addr_unlock_bh(netdev);
ifmc_promisc{
be_set_mc_promisc(adapter);
} else if (adapter->update_mc_list) {
status = be_cmd_rx_filter(adapter, BE_IF_FLAGS_MULTICAST, ON);
else{
adapter->if_flags &= ~BE_IF_FLAGS_MCAST_PROMISCUOUS;
else
be_set_mc_promisc(adapter);
adapter->update_mc_list = false;
}
}
be_clear_mc_liststruct *)
{
struct net_device *netdev = adapter->netdev;
/
be_cmd_rx_filter(adapter, BE_IF_FLAGS_MULTICAST be_rx_compl_discard
adapter->mc_count = 0;
}
static int be_uc_mac_add(struct be_adapter *java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 1
{
if (ether_addr_equal(adapter->uc_list[uc_idx].mac, adapter->dev_mac)) {
adapter->pmac_id[uc_idx + 1] = adapter->pmac_id[0];
return 0;
}
return be_cmd_pmac_add(adapter, adapter->java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 36
adapter-(->;
&adapter->pmac_id[uc_idx + 1], 0);
}
static void be_uc_mac_del(struct be_adapter *adapter, int pmac_id)
{ java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (pmac_id == adapter->pmac_id[0])
return;
be_cmd_pmac_del *indicated by rxcp.
}
static void be_set_uc_list(struct be_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;
structnetdev_hw_addr *ha;
bool uc_promisc = false;
int curr_uc_macs = 0, i;
netif_addr_lock_bh(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 10
__ u16 hdr_len, curr_frag_len, remaining;
if (netdev->flags & IFF_PROMISC) {
adapter->update_uc_list = false;
}else if((etdev
uc_promisc = true;
adapter->update_uc_list = false;
} else if (adapter->if_flags & BE_IF_FLAGS_PROMISCUOUS) {
/java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
* in uc-promisc mode and now is out of that mode.
*/
adapter->update_uc_list = true;
}
if (adapter->update_uc_list) {
/* cache the uc-list in adapter array */
i = 0;
netdev_for_each_uc_addr if((- java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 42
ether_addr_copy(adapter->uc_list[i].mac, ha->addr);
i+;
}
curr_uc_macs = netdev_uc_count(netdev);
}
netif_addr_unlock_bh(netdev);
u){
be_set_uc_promisc(adapter);
} else if (adapter->update_uc_list) {
be_clear_uc_promisc(adapter);
for (i = 0; i static be_if_destroysruct be_adapter adapter)
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 30
for (i = 0; i < curr_uc_macs; i++)
be_uc_mac_add(adapter, i);
adapter->uc_macs = curr_uc_macs;
adapter->update_uc_list = false;
}
}
static(truct *dapter)
{
struct net_device *netdev = adapter->netdev;
int i;
__dev_uc_unsync(netdev, NULL);
fori=0;i adapter> i+java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
be_uc_mac_del(adapter, adapter->pmac_id[i + 1]);
adapter->uc_macs = 0;
}
static void __be_set_rx_mode(struct be_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;
mutex_lock(&adapter->rx_filter_lock);
if (netdev->flags & IFF_PROMISC) {
if (!be_in_all_promisc(adapter))
be_set_all_promisc(adapter);
} else if (be_in_all_promisc(adapter)) {
/* We need to re-program the vlan-list or clear
* vlan-promisc mode (if needed) when the interface
page_info-age_offsetjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
*/
skb_shinfo)>+java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
}
e_set_uc_list(dapter;
be_set_mc_list(adapter);
mutex_unlock(&adapter->rx_filter_lock);
}
static void be_work_set_rx_mode(struct skbl = ()java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
{
structflush_workqueuebe_wq)
container_of(work, struct be_cmd_work, work);
__be_set_rx_mode(cmd_work->adapter);
kfree(cmd_work);
}
nt be_vf_clear(adapter);
{
struct be_adapter *adapter = struct be_rx_compl_info *rxcp)
struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf];
int ;
if (!sriov_enabled(adapter))
return -EPERM;
if (!is_valid_ether_addr(mac) || vf >= adapter->num_vfs)
return -EINVAL;
/* Proceed further only if user provided MAC is different
* if unlikely(!skb) {
*/
if (ether_addr_equal(mac, vf_cfg->java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 30
return 0;
if (BEx_chip(adapter
be_cmd_pmac_del(adapter, vf_cfgrxo skb,rxcp;
vf + 1);
status= be_cmd_pmac_adda ,vf_cfg->java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
&vf_cfg->pmac_id, vf + 1);
} else {
status = be_cmd_set_macskb_checksum_none_assert(kb;
vf + 1);
}
if (status) {
pdev-dev, "MAC%M set on VF be_vxlan_unset_port(dapter->etdev,0 ,NULL);
mac, vf, status);
return be_cmd_status(status);
}
>,)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
;
}
staticint ( net_devicenetdev int vf
structifla_vf_info *i
{
struct be_adapter *adapter = netdev_priv(netdev);
struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf];
if (!sriov_enabled(adapter))
return -EPERM;
if)
return -EINVAL;
vi->vf = vf;
vi->max_tx_rate = vf_cfg->tx_rate;
vi->min_tx_rate = 0;
vi> =vf_cfg>vlan_tag &VLAN_VID_MASK;
vi->qos = vf_cfg->vlan_tag >> VLAN_PRIO_SHIFT;
memcpy(&vi->mac, vf_cfg->mac_addr, ETH_ALEN);
vi->linkstate = adapter->vf_cfg[vf].plink_tracking;
vi->spoofchk = adapter->vf_cfg[vf].spoofchk;
return 0;
}
static int be_set_vf_tvt(struct be_adapter *adapter, int vf, u16 vlan)
{
struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf];
u16 vids[java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
int vf_if_id = fori=0, -; <rxcp-num_rcvd; i++) {
int status;
/* Enable Transparent VLAN Tagging */
status = be_cmd_set_hsw_config(adapter,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (status)
return status;
/* Clear pre-programmed VLAN filters on VF if any, if TVT is enabled */ (i = 0 | page_info->age_offset == 0) {
vids /* First frag or Fresh page */
status = be_cmd_vlan_config(adapter, vf_if_id, vids, 1, vf + 1);
if (!status)
dev_info(&adapter->pdev->dev,
"Cleared guest VLANs on VF%d", vf);
/* After TVT is enabled, disallow VFs to program VLAN filters */
if ( put_pagepage_info->page);
status = be_cmd_set_fn_privileges(adapter, vf_cfg->privileges &
skb_frag_size_add(skb_shinfo(skb)>rags],
if (!status)
vf_cfg->privileges &= ~BE_PRIV_FILTMGMT;
}
return 0;
}
*,intjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
{
struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf];
struct device *dev = &adapter->pdev->dev;
int status;
Transparent VLAN Tagging. */
status be_cmd_set_hsw_configadapter , vf+ 1,
vf_cfg->if_handle, 0, 0);
if (status)
return status;
/* Allow VFs to program VLAN filtering */
(-&BE_PRIV_FILTMGMT) {
status = be_cmd_set_fn_privileges(adapter, vf_cfg->privileges |
voidjava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 63
!)
vf_cfg>vlanf java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 48
dev_info>=,;
}
}
dev_info(dev,
"re- /f VMtoclear Transparent 0;
return 0;
}
static int}
__be16 vlan_proto)
{
struct be_adapter *adapter = netdev_priv(netdev);
struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf];
status
!riov_enabledadapter))
return -EPERM;
if (vf >= adapter->num_vfs || vlan > 4095 | > be_resources res 0;
return -EINVAL;
if (vlan_proto != htons(ETH_P_8021Q))
return -EPROTONOSUPPORT;
if (vlan || qos) {
vlan |= qos << VLAN_PRIO_SHIFTjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
be_set_vf_tvt,,vlan;
} else {
status = be_clear_vf_tvt(adapter, java.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 35
}
if (status)rxcp>lanf (vtp, );
dev_err(&adapter->pdev->dev,
"VLAN %d config rxcp-e /* If a FW profileexists,
status);
return be_cmd_status( cap_flags =BE_VF_IF_EN_FLAGS;
}
vf_cfg->vlan_tag = vlan;
return 0;
}
static int rxcp->num_rcvd(numfrags );
intmin_tx_rate max_tx_rate)
{
struct be_adapter*adapter = netdev_priv(netdev);
struct device *dev = &adapter->pdev->dev;
int percent_rate, status = 0;
u16 link_speed = 0;
u8 link_status;
if (!riov_enabled java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
return 1)java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
(vf=adapter>um_vfs
return -java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
if (min_tx_rate)static structbe_rx_compl_info *be_rx_compl_get(struct be_rx_obj *rxo)
return -EINVAL;
struct *ompl=(rxo-cq;
goto config_qos;
status = * valid bit is at the sameposition in
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 71
if (status)
goto err;
java.lang.StringIndexOutOfBoundsException: Range [4, 0) out of bounds for length 0
dev e3_native)
status = -ENETDOWN;
goto err;
}
if (
dev_err(dev, "TX-rate must be between 100 and %d Mbps\n",
link_speed);
status= -INVAL
goto err;
}
/* On Skyhawk the QOS setting must be done only as a % value */0java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
percent_rate = link_speed / 100;
if (skyhawk_chip(adapter) && (max_tx_rate % vf_cfg-if_handle, f+ 1) *tagged theoutervlantagand
dev_err(dev, "TX-rate must be a multiple of %d Mbps\n",
percent_rate);
status = -EINVAL;
goto err;
}
config_qos:
status = be_cmd_config_qos(adapter, java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 19
(status)
goto err;
adapter->vf_cfg[vf].tx_rate = max_tx_rate;
return;
errjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
dev_err(ev,T-java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 59
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
return be_cmd_status(status);
}
static int be_set_vf_link_state(struct net_device *netdev, int vf,
int link_state)
{
struct be_adapter *adapter = netdev_priv(netdev);
int status;
if (!sriov_enabled(adapter))
return -EPERM;
if (vf >= adapter->num_vfs)
-INVAL
status = be_cmd_set_logical_link_configreturn rxcp;
if status) {
dev_err(&adapter->pdev->dev,
"Link state change on VF %d failed: %#x\n", vf, static inline struct page *be_alloc_pages(u32 size, gfp_t
return be_cmd_status(status{
}
adapter->vf_cfg[vf].plink_tracking = link_state;
return 0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
static int be_set_vf_spoofchk(struct net_device *netdev, int vf, bool enable)
{
struct be_adapter *adapter = netdev_priv(netdev);
struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf];
u8 spoofchk;
int status;
if(sriov_enabled(adapter*/
returnstatic void structbe_rx_obj*rxo, gfp_t ,u32frags_needed)
if(vf>if_handle =-;
return -EINVAL;
if ( structbe_rx_page_info *age_info NULL, prev_page_info ;
return -EOPNOTSUPP;
if (nable= -spoofchk)
return 0;
spoofchk = enable ? ENABLE_MAC_SPOOFCHK : java.lang.StringIndexOutOfBoundsException: Range [0, 63) out of bounds for length 41
status=be_cmd_set_hsw_config(dapter, , + 1 >,
0, spoofchk);
if (status) {
dev_err(&adapter->pdev->dev,
"Spoofchk change on VF %d failed: %#x\n", vf, status);if(nlikely(pagep) {
return be_cmd_status(status);
}
vf_cfg->java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
return 0;
}
static void be_aic_update(struct be_aic_obj * adapter->ig_page_size,
ulong now)
{
aic->rx_pkts_prev = rx_pkts;
aic = tx_pkts;
aic->jiffies= pjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
}
static int adapter->drv_statsadapter-drv_stats int status,old_vfs, vf;
{
struct be_adapter *adapter = eqo->adapter;
int eqd, start;
}
struct bool spoofchk;
struct be_tx_obj *txo;
u64 rx_pkts = 0, tx_pkts = 0;
ulong now;
u32 , deltajava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
int i;
aic = &adapter->aic_obj[eqo->idx];
if (!adapter->aic_enabled) {
if (aic->jiffies)
aic->jiffies frag_dmaaddr = page_dmaaddr + page_info->page_offset;
eqd = aic->et_eqd;
returneqd;
}
for_all_rx_queues_on_eq( status = be_vf_setup_init(adapter);
do {
start = u64_stats_fetch_begin(&rxo->stats.sync);
rx_pkts += rxo->stats. if(page_offset ++) >
} while (java.lang.StringIndexOutOfBoundsException: Range [30, 27) out of bounds for length 30
}
for_all_tx_queues_on_eq(adapter, eqo, txo, i) {
do {
=u64_stats_fetch_beginifld_vfs{
tx_pkts += txo->stats (age_info,bus );
} }
for_all_vfs(adapter, vf_cfg, java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 0
/* Skip, if wrapped around or first calculation */page_info =rxo->page_info_tbl[xq-head]java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
now = jiffies;
if (!aic-> /* Mark the last frag of a page when we break out of the above loop
rx_pkts < aic->rx_pkts_prev ||
tx_pkts < aic->tx_reqs_prev) {
be_aic_update}
return aic->prev_eqd;
}
delta (now - aic->jiffies);java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (delta == 0)
return aic->prev_eqd;
pps = (((u32)(rx_pkts - aic->rx_pkts_prev) * 1000) / delta) +
(((u32)(tx_pkts - aic->tx_reqs_prev) * 1000) / delta);
eqd = (pps / 15000) << 2;
if (eqd < 8)
eqd = 0;
eqd = min_t(u32, eqd, aic->max_eqd);
eqd = max_t(u32, eqd, aic->min_eqd);
switch (tatus {
return eqd;
}
/* For Skyhawk-R only */
static u32 be_get_eq_delay_mult_enc(struct be_eq_obj *eqo)
{
struct *= qo-dapter;
struct be_aic_obj *aic = &adapter->aic_obj[tx_stats(txo)->tx_dma_err++;
ulong now = jiffies;
int eqd;
u32 mult_enc;
}
return tx_stats(txo)->tx_spoof_check_err;
if (jiffies_to_msecs(now - aic-> breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
eqd = aic->prev_eqd;
else
eqd = be_get_new_eqd(eqo);
if (eqd > 100)
mult_enc = R2I_DLY_ENC_1;
else if (eqd > 60)
mult_enc = R2I_DLY_ENC_2;
else if (eqd > 20)
mult_enc:
else
mult_enc = R2I_DLY_ENC_0;
aic- break;
return mult_enc;
}
(struct, java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 65
{
struct tx_stats(txo)-java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 30
struct java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
struct tx_stats(txo)-java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 30
int i, num = 0, eqd;
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 38
->java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 36
eqd = be_get_new_eqd(eqo);
if (struct be_queue_info *tx_cq = &txo->cq;
set_eqd[num]. struct be_tx_compl_infotxcp=&txo->xcp;
set_eqd[num].eq_id = eqop be_eth_tx_compl *compl=(;
aic->prev_eqd = eqd;
num++;
}
}
if (num)
be_cmd_modify_eqd(adapter, set_eqd, num);
}
static void be_rx_stats_update((, sizeof(compl)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
txcp->end_index( ;
{
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
u64_stats_update_begin(&stats->sync);
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
stats->rx_bytes += /
stats->rx_pkts++;
if (rxcp->tunneled)
stats *
=)
stats->rx_mcast_pkts++;
>+ 1)
u64_stats_update_end
}
s *xcpjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
{
/* L4 checksum is not reliable for non TCP/UDP packets.
*/
return (rxcp->tcpf || rxcp->udpf) -dw(,valid) / 32] = 0;
(rxcp->ip_csum || rxcp->ipv6) && !rxcp->err(tx_cq)
}
static struct be_rx_page_info *get_rx_page_info(struct be_rx_obj *rxo)
{
java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 43
struct be_rx_page_info *rx_page_info;
struct be_queue_info *rxq = &rxo->q;
u32=>ail;
rx_page_infostruct sk_buff *skb = NULL;
BUG_ON(!rx_page_info-page);
if (rx_page_info->last_frag) {
dma_unmap_page(&adapteru16 num_wrbs =0;
u32 frag_index;
adapter
rx_page_info->last_frag =
} else {
dma_sync_single_for_cpu(&adapter-> - =NULL
dma_unmap_addr(wrb queue_tail_nodet)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
rx_frag_size, unmap_tx_frag&dapter-p-d, java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
}
queue_tail_inc(rxq);
atomic_dec(&rxq->used);
return rx_page_info;
}
/* Throwaway the data in the Rx completion */
(java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 54
c rxcpjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
{
return ;
u16 i, num_rcvd = rxcp->num_rcvd;
for (i = 0; i < num_rcvd; i++) {
eqe;
put_page(page_info->page);
memset( {
}
}
/*
* (qe->evt==)
* indicated by rxcp.
*/
staticrmb)
struct be_rx_compl_info *rxcp)
{
struct be_rx_page_info *page_info;
u16 i, j;
u16 hdr_len, curr_frag_len, remaining;
u8 *start;
page_info = get_rx_page_info(rxo);
start = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
prefetch(start);
/* Copy data in the first descriptor of this completion */
skb->len = curr_frag_len;
if (curr_frag_len <= BE_HDR_LEN) { /* tiny packet */
memcpy(skb->data{
/* Complete packet has now been moved to data */
put_page(page_info->page);
-ata_len= 0
skb->tail += curr_frag_len;
} else{
hdr_len = ETH_HLEN;
memcpy(skb->data, start, (atomic_read(rxq-used >0 {
skb_shinfo(skb)->nr_frags = 1;
skb_frag_fill_page_desc(&skb_shinfo(skb)->frags[0],
page_info->page,
>age_offset hdr_len,
curr_frag_len - hdr_len);
skb
skb->truesize += rx_frag_size;
skb->tail += hdr_len;
}rxq- ;
page_info->page = NULL;
if (rxcp->pkt_size <= rx_frag_size) {
BUG_ON(rxcp->num_rcvd != 1);
return;
}
/* More frags present for this completion */
remaining = rxcp->pkt_size - curr_frag_len;
for (i = 1, j = *Waitjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 63
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 36
curr_frag_len = min(remaining, rx_frag_size);
/* Coalesce all frags from the same physical page in one slot */
if (page_info->page_offset == 0) {
/* Fresh page */
j++;
skb_frag_fill_page_desc(&skb_shinfo(skb)->frags[j],
page_info->page,
page_info->age_offset,
curr_frag_len);
skb_shinfo(skb)->nr_frags++;
} else {
put_page(page_info->page);
skb_frag_size_add(&skb_shinfo(skb)->frags[j],
breakjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
skb->len += curr_frag_len;
skb->data_len += curr_frag_len;
skb-truesize+= rx_frag_size;*java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
- curr_frag_len;
page_info-page NULL;
}
BUG_ON(j > MAX_SKB_FRAGS);
}
/* Process the RX completion indicated by rxcp when GRO is disabled */
staticvoid be_rx_compl_process java.lang.StringIndexOutOfBoundsException: Range [30, 15) out of bounds for length 46
*java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
{
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
struct net_device *netdev = adapter->netdev;
struct sk_buff *skbjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
skb = java.lang.StringIndexOutOfBoundsException: Range [57, 29) out of bounds for length 57
if ((!skb) {
rx_stats(rxo)->java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 9
be_rx_compl_discard(rxo, rxcp);
return;
}
r,skb,rxcp;
if> & ())
skb->ip_summed = CHECKSUM_UNNECESSARY;
else
skb_checksum_none_assert(skb);
do
skb_record_rx_queue(skb, rxo - &adapter->rx_obj[0]);
if (java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0
skb_set_hash(skb, rxcp->rss_hash, PKT_HASH_TYPE_L3);
skb-c java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 51
skb_mark_napi_id(skb, napi);
if +
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), rxcp->vlan_tag);
netif_receive_skb(skb);
}
s enabled *
static void be_rx_compl_process_gro(struct be_rx_obj *rxo,
struct napi_struct *napi,
struct be_rx_compl_info *rxcp)
{
struct *adapter =rxo-adapter
struct be_rx_page_info be_check_erroradapter, BE_ERROR_HW)
struct sk_buff *skb = NULL;
u16 remaining, curr_frag_len;
u16 i, j;
skb =()java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 | |