1. 27 5月, 2006 5 次提交
    • A
      ixgb: remove lock access in the fast path · 3352a3b2
      Auke Kok 提交于
      This mimics a change made in the e1000 driver that imitates a slick
      tg3 way of avoiding grabbing the lock around restarting the tx queue.
      Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NJohn Ronciak <john.ronciak@intel.com>
      3352a3b2
    • A
      ixgb: allocate only buffersize needed · 3f3dc0dd
      Auke Kok 提交于
      In order to help correct window size growth, use the MFS register
      to limit the packet sizes received and allocate only the buffer
      size necessary
      Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NJohn Ronciak <john.ronciak@intel.com>
      
      index 0905a82..84a8064 100644
      --- a/drivers/net/ixgb/ixgb_main.c
      +++ b/drivers/net/ixgb/ixgb_main.c
      @@ -574,9 +574,8 @@ ixgb_sw_init(struct ixgb_adapter *adapte
       	hw->subsystem_vendor_id = pdev->subsystem_vendor;
       	hw->subsystem_id = pdev->subsystem_device;
      
      -	adapter->rx_buffer_len = IXGB_RXBUFFER_2048;
      -
       	hw->max_frame_size = netdev->mtu + ENET_HEADER_SIZE + ENET_FCS_LENGTH;
      +	adapter->rx_buffer_len = hw->max_frame_size;
      
       	if((hw->device_id == IXGB_DEVICE_ID_82597EX)
       	   || (hw->device_id == IXGB_DEVICE_ID_82597EX_CX4)
      @@ -820,21 +819,14 @@ ixgb_setup_rctl(struct ixgb_adapter *ada
      
       	rctl |= IXGB_RCTL_SECRC;
      
      -	switch (adapter->rx_buffer_len) {
      -	case IXGB_RXBUFFER_2048:
      -	default:
      +	if (adapter->rx_buffer_len <= IXGB_RXBUFFER_2048)
       		rctl |= IXGB_RCTL_BSIZE_2048;
      -		break;
      -	case IXGB_RXBUFFER_4096:
      +	else if (adapter->rx_buffer_len <= IXGB_RXBUFFER_4096)
       		rctl |= IXGB_RCTL_BSIZE_4096;
      -		break;
      -	case IXGB_RXBUFFER_8192:
      +	else if (adapter->rx_buffer_len <= IXGB_RXBUFFER_8192)
       		rctl |= IXGB_RCTL_BSIZE_8192;
      -		break;
      -	case IXGB_RXBUFFER_16384:
      +	else if (adapter->rx_buffer_len <= IXGB_RXBUFFER_16384)
       		rctl |= IXGB_RCTL_BSIZE_16384;
      -		break;
      -	}
      
       	IXGB_WRITE_REG(&adapter->hw, RCTL, rctl);
       }
      @@ -1551,25 +1543,12 @@ ixgb_change_mtu(struct net_device *netde
       		DPRINTK(PROBE, ERR, "Invalid MTU setting %d\n", new_mtu);
       		return -EINVAL;
       	}
      -
      -	if((max_frame <= IXGB_MAX_ENET_FRAME_SIZE_WITHOUT_FCS + ENET_FCS_LENGTH)
      -	   || (max_frame <= IXGB_RXBUFFER_2048)) {
      -		adapter->rx_buffer_len = IXGB_RXBUFFER_2048;
      -
      -	} else if(max_frame <= IXGB_RXBUFFER_4096) {
      -		adapter->rx_buffer_len = IXGB_RXBUFFER_4096;
      
      -	} else if(max_frame <= IXGB_RXBUFFER_8192) {
      -		adapter->rx_buffer_len = IXGB_RXBUFFER_8192;
      +	adapter->rx_buffer_len = max_frame;
      
      -	} else {
      -		adapter->rx_buffer_len = IXGB_RXBUFFER_16384;
      -	}
      -
       	netdev->mtu = new_mtu;
      -
      -	if(old_max_frame != max_frame && netif_running(netdev)) {
      
      +	if ((old_max_frame != max_frame) && netif_running(netdev)) {
       		ixgb_down(adapter, TRUE);
       		ixgb_up(adapter);
       	}
      3f3dc0dd
    • A
      ixgb: revert an unwanted fix regarding tso/descriptors · 989316dd
      Auke Kok 提交于
      There seemed to be another bug introduced as well as a performance hit
      with the addtion of the sentinel descriptor workaround.  Removal of
      this workaround appears to prevent the hang.  We'll take a risk
      and remove it, as we had never seen the originally reported bug
      under linux.
      Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NJohn Ronciak <john.ronciak@intel.com>
      989316dd
    • A
      ixgb: fix interface losing macaddr on ifdn/up · 8556f0d1
      Auke Kok 提交于
      user contributed fix for LAA across down/up, from tonychung00@users.sf.net.
      Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NJohn Ronciak <john.ronciak@intel.com>
      8556f0d1
    • A
      ixgb: fix smp polling race condition · e59d1696
      Auke Kok 提交于
      Moved interrupt masking to before requesting the interrupt from the OS.
      Moved interrupt enable to after netif_poll_enable.  This fixes a racy
      BUG() where polling would be running on another CPU at the same time
      that netif_poll_enable would run.
      Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NJohn Ronciak <john.ronciak@intel.com>
      e59d1696
  2. 26 5月, 2006 3 次提交
  3. 24 5月, 2006 32 次提交