1. 18 12月, 2013 1 次提交
    • R
      bna: Fix Filter Add Del · 20b298f5
      Rasesh Mody 提交于
      Change Details:
       - bna_rx_mcast_listset() API first looks at free_q only and not at other
         pending Qs rendering it non-deterministic of giving an upper limit.
         Modify bna_rx_mcast_listset() implementation to not use only half of the
         limit.
       - Allocate and initialize queue for deleting
       - Segregate the adding and deleting process by using separate queues.
       - The filter framework in bna does not let adding addresses to its max capacity
         due to asynchronous operations involved.
         Provide a synchronous option to set a given list.
      Signed-off-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      20b298f5
  2. 06 8月, 2013 1 次提交
    • J
      bna: Staticize local functions · 7f4341fe
      Jingoo Han 提交于
      bna_rx_sm_stop_wait_entry(), bna_rx_sm_rxf_stop_wait_entry(),
      bna_rx_sm_started_entry(), bna_rx_sm_cleanup_wait_entry(),
      and bna_rx_sm_cleanup_wait() are used only in this file.
      Fix the following sparse warnings:
      
      drivers/net/ethernet/brocade/bna/bna_tx_rx.c:1423:1: warning: symbol 'bna_rx_sm_stop_wait_entry' was not declared. Should it be
      static?
      drivers/net/ethernet/brocade/bna/bna_tx_rx.c:1476:1: warning: symbol 'bna_rx_sm_rxf_stop_wait_entry' was not declared. Should it be
      static?
      drivers/net/ethernet/brocade/bna/bna_tx_rx.c:1532:1: warning: symbol 'bna_rx_sm_started_entry' was not declared. Should it be
      static?
      drivers/net/ethernet/brocade/bna/bna_tx_rx.c:1597:1: warning: symbol 'bna_rx_sm_cleanup_wait_entry' was not declared. Should it be
      static?
      drivers/net/ethernet/brocade/bna/bna_tx_rx.c:1602:1: warning: symbol 'bna_rx_sm_cleanup_wait' was not declared. Should it be static?
      Signed-off-by: NJingoo Han <jg1.han@samsung.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7f4341fe
  3. 21 5月, 2013 1 次提交
    • R
      bna: Fix Ucast Failure Handling · f489a4ba
      Rasesh Mody 提交于
      Failure of the UCAST set for base mac address fails when user configures a
      duplicate mac address that matches that of another vNIC on the same port.
      The bna does not handle the ucast failure and keeps this address in cache.
      On disable of the vNIC, bna tries to delete the failed base mac address and the
      fw asserts.
      
      On failure of ucast address, mark ucast address set to false.
      Signed-off-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f489a4ba
  4. 12 12月, 2012 3 次提交
    • R
      bna: Add RX State · 215a64a2
      Rasesh Mody 提交于
      Change Details:
       -      BNA state machine for Rx in start_wait state moves it to stop_wait on
              receipt of RX_E_STOP. In Rx stop_wait state, on receipt of
                      RX_E_STARTED event does enet stop
                      RX_E_STOPPED event does rx_cleanup_cbfn
              rx_cleanup_cbfn in this case is called without post_cbfn. post_cbfn
              happens only after RX_E_STARTED event is received in start_wait. Without
              doing post_cbfn, NAPI remains disabled and in cleanup we try to disable
              again causing endless wait. ifconfig process and other workers can thus
              get stuck.
       -      Introducing start_stop_wait state for Rx. This state handles the case of
              if post_cbfn is not done simply do stop without the cleanup.
      Signed-off-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      215a64a2
    • R
      bna: TX Intr Coalescing Fix · d3f92aec
      Rasesh Mody 提交于
      Change Details:
              For Tx IB, IPM was enabled with inter_pkt_timeo of 0. This caused the
      Tx IB not to generate interrupt till inter_pkt_count of packets have been
      received. Correct definition for BFI_TX_INTERPKT_TIMEO & BFI_TX_INTERPKT_COUNT
      Signed-off-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d3f92aec
    • R
      bna: Tx and Rx Optimizations · 5216562a
      Rasesh Mody 提交于
      Change details:
       -      Have contiguous queue pages for TxQ, RxQ and CQ. Data structure and
              QPT changes related to contiguous queue pages
       -      Optimized Tx and Rx unmap structures. Tx and Rx fast path changes due to
              unmap data structure changes
       -      Re-factored Tx and Rx fastpath routines as per the new queue data structures
       -      Implemented bnad_txq_wi_prepare() to program the opcode, flags, frame_len
              and num_vectors in the work item
       -      Reduced Max TxQ and RxQ depth to 2048 while default value for Tx/Rx queue
              depth is unaltered (512)
      Signed-off-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5216562a
  5. 11 7月, 2012 1 次提交
  6. 30 9月, 2011 1 次提交
    • R
      bna: Add Callback to Fix RXQ Stop · 5bcf6ac0
      Rasesh Mody 提交于
      Change details:
       - Add a callback in the BNA, which is called before sending FW command to stop
         RxQs. After this callback is called, driver should not post anymore Rx
         buffers to the RxQ. This addresses a small window where driver posts Rx
         buffers while FW is stopping/has stopped the RxQ.
       - Registering callback function, rx_stall_cbfn, during bna_rx_create.
         Invoking callback function, rx_stall_cbfn, before sending rx_cfg_clr
         command to FW
       - Bnad_cb_rx_stall implementation - set a flag in the Rxq to mark buffer
         posting disabled state. While posting buffers check for the above flag.
      Signed-off-by: NGurunatha Karaje <gkaraje@brocade.com>
      Signed-off-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5bcf6ac0
  7. 17 9月, 2011 1 次提交
  8. 11 8月, 2011 1 次提交
    • R
      bna: Tx and Rx Redesign · f3bd5173
      Rasesh Mody 提交于
      Change details:
       - This patch contains the changes as a result of redesigning of Tx, Rx data
         path setup. In the old design, setting up Txqs, Rxqs were done in the driver.
         With the new design, most of the hardware setup steps for the Txq, Rxqs are
         moved to FW. Host driver issues commands to FW through the message queue to
         setup/teardown tx, rx data path. FW performs necessary steps and responds
         back to the driver with a status.
       - As a result of this redesign, the state machine implementation for Tx, Rx
         objects have changed significantly. Instead of doing the raw register access,
         these state machines mostly send a command to FW and wait for response and
         take the next action. In addition to tx, rx datapath setup, this patch also
         deals with rx filter configuration - such as unicast address, multicast
         address, vlan filter, promiscuous mode etc.
      Signed-off-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f3bd5173