diff options
Diffstat (limited to 'drivers/net/ethernet/qlogic/netxen')
9 files changed, 50 insertions, 41 deletions
diff --git a/drivers/net/ethernet/qlogic/netxen/Makefile b/drivers/net/ethernet/qlogic/netxen/Makefile index 861a0590b1f..e14e60c8838 100644 --- a/drivers/net/ethernet/qlogic/netxen/Makefile +++ b/drivers/net/ethernet/qlogic/netxen/Makefile @@ -13,9 +13,7 @@  # GNU General Public License for more details.  #                                     # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, -# MA  02111-1307, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>.  #   # The full GNU General Public License is included in this distribution  # in the file called "COPYING". diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic.h b/drivers/net/ethernet/qlogic/netxen/netxen_nic.h index 32675e16021..6e426ae9469 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic.h +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic.h @@ -14,9 +14,7 @@   * GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA  02111-1307, USA. + * along with this program; if not, see <http://www.gnu.org/licenses/>.   *   * The full GNU General Public License is included in this distribution   * in the file called "COPYING". @@ -53,8 +51,8 @@  #define _NETXEN_NIC_LINUX_MAJOR 4  #define _NETXEN_NIC_LINUX_MINOR 0 -#define _NETXEN_NIC_LINUX_SUBVERSION 81 -#define NETXEN_NIC_LINUX_VERSIONID  "4.0.81" +#define _NETXEN_NIC_LINUX_SUBVERSION 82 +#define NETXEN_NIC_LINUX_VERSIONID  "4.0.82"  #define NETXEN_VERSION_CODE(a, b, c)	(((a) << 24) + ((b) << 16) + (c))  #define _major(v)	(((v) >> 24) & 0xff) @@ -1883,9 +1881,8 @@ static inline u32 netxen_tx_avail(struct nx_host_tx_ring *tx_ring)  int netxen_get_flash_mac_addr(struct netxen_adapter *adapter, u64 *mac);  int netxen_p3_get_mac_addr(struct netxen_adapter *adapter, u64 *mac); -extern void netxen_change_ringparam(struct netxen_adapter *adapter); -extern int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, -				int *valp); +void netxen_change_ringparam(struct netxen_adapter *adapter); +int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, int *valp);  extern const struct ethtool_ops netxen_nic_ethtool_ops; diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c index 1bcaf45aa86..6f6be57f469 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c @@ -14,9 +14,7 @@   * GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA  02111-1307, USA. + * along with this program; if not, see <http://www.gnu.org/licenses/>.   *   * The full GNU General Public License is included in this distribution   * in the file called "COPYING". diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c index 4ca2c196c98..87e073c6e29 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c @@ -14,9 +14,7 @@   * GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA  02111-1307, USA. + * along with this program; if not, see <http://www.gnu.org/licenses/>.   *   * The full GNU General Public License is included in this distribution   * in the file called "COPYING". diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hdr.h b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hdr.h index 32c790659f9..a310c2f6502 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hdr.h +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hdr.h @@ -14,9 +14,7 @@   * GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA  02111-1307, USA. + * along with this program; if not, see <http://www.gnu.org/licenses/>.   *   * The full GNU General Public License is included in this distribution   * in the file called "COPYING". @@ -958,6 +956,7 @@ enum {  #define NETXEN_PEG_HALT_STATUS2 	(NETXEN_CAM_RAM(0xac))  #define NX_CRB_DEV_REF_COUNT		(NETXEN_CAM_RAM(0x138))  #define NX_CRB_DEV_STATE		(NETXEN_CAM_RAM(0x140)) +#define NETXEN_ULA_KEY			(NETXEN_CAM_RAM(0x178))  /* MiniDIMM related macros */  #define NETXEN_DIMM_CAPABILITY		(NETXEN_CAM_RAM(0x258)) diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c index 8375cbde996..db4280ce9c0 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c @@ -14,9 +14,7 @@   * GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA  02111-1307, USA. + * along with this program; if not, see <http://www.gnu.org/licenses/>.   *   * The full GNU General Public License is included in this distribution   * in the file called "COPYING". @@ -648,7 +646,7 @@ nx_p3_sre_macaddr_change(struct netxen_adapter *adapter, u8 *addr, unsigned op)  	mac_req = (nx_mac_req_t *)&req.words[0];  	mac_req->op = op; -	memcpy(mac_req->mac_addr, addr, 6); +	memcpy(mac_req->mac_addr, addr, ETH_ALEN);  	return netxen_send_cmd_descs(adapter, (struct cmd_desc_type0 *)&req, 1);  } @@ -663,7 +661,7 @@ static int nx_p3_nic_add_mac(struct netxen_adapter *adapter,  	list_for_each(head, del_list) {  		cur = list_entry(head, nx_mac_list_t, list); -		if (memcmp(addr, cur->mac_addr, ETH_ALEN) == 0) { +		if (ether_addr_equal(addr, cur->mac_addr)) {  			list_move_tail(head, &adapter->mac_list);  			return 0;  		} diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.h b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.h index e2c5b6f2df0..7433c4d2160 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.h +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.h @@ -14,9 +14,7 @@   * GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA  02111-1307, USA. + * along with this program; if not, see <http://www.gnu.org/licenses/>.   *   * The full GNU General Public License is included in this distribution   * in the file called "COPYING". diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c index 7692dfd4f26..32058614151 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c @@ -14,9 +14,7 @@   * GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA  02111-1307, USA. + * along with this program; if not, see <http://www.gnu.org/licenses/>.   *   * The full GNU General Public License is included in this distribution   * in the file called "COPYING". @@ -1604,13 +1602,13 @@ netxen_process_lro(struct netxen_adapter *adapter,  	u32 seq_number;  	u8 vhdr_len = 0; -	if (unlikely(ring > adapter->max_rds_rings)) +	if (unlikely(ring >= adapter->max_rds_rings))  		return NULL;  	rds_ring = &recv_ctx->rds_rings[ring];  	index = netxen_get_lro_sts_refhandle(sts_data0); -	if (unlikely(index > rds_ring->num_desc)) +	if (unlikely(index >= rds_ring->num_desc))  		return NULL;  	buffer = &rds_ring->rx_buf_arr[index]; diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c index cbd75f97ffb..5bf05818a12 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c @@ -14,9 +14,7 @@   * GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA  02111-1307, USA. + * along with this program; if not, see <http://www.gnu.org/licenses/>.   *   * The full GNU General Public License is included in this distribution   * in the file called "COPYING". @@ -645,8 +643,9 @@ static int netxen_setup_msi_interrupts(struct netxen_adapter *adapter,  	if (adapter->msix_supported) {  		netxen_init_msix_entries(adapter, num_msix); -		err = pci_enable_msix(pdev, adapter->msix_entries, num_msix); -		if (err == 0) { +		err = pci_enable_msix_range(pdev, adapter->msix_entries, +					    num_msix, num_msix); +		if (err > 0) {  			adapter->flags |= NETXEN_NIC_MSIX_ENABLED;  			netxen_set_msix_bit(pdev, 1); @@ -1374,7 +1373,7 @@ netxen_setup_netdev(struct netxen_adapter *adapter,  	netxen_nic_change_mtu(netdev, netdev->mtu); -	SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops); +	netdev->ethtool_ops = &netxen_nic_ethtool_ops;  	netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |  	                      NETIF_F_RXCSUM; @@ -1415,6 +1414,32 @@ netxen_setup_netdev(struct netxen_adapter *adapter,  	return 0;  } +#define NETXEN_ULA_ADAPTER_KEY		(0xdaddad01) +#define NETXEN_NON_ULA_ADAPTER_KEY	(0xdaddad00) + +static void netxen_read_ula_info(struct netxen_adapter *adapter) +{ +	u32 temp; + +	/* Print ULA info only once for an adapter */ +	if (adapter->portnum != 0) +		return; + +	temp = NXRD32(adapter, NETXEN_ULA_KEY); +	switch (temp) { +	case NETXEN_ULA_ADAPTER_KEY: +		dev_info(&adapter->pdev->dev, "ULA adapter"); +		break; +	case NETXEN_NON_ULA_ADAPTER_KEY: +		dev_info(&adapter->pdev->dev, "non ULA adapter"); +		break; +	default: +		break; +	} + +	return; +} +  #ifdef CONFIG_PCIEAER  static void netxen_mask_aer_correctable(struct netxen_adapter *adapter)  { @@ -1561,6 +1586,8 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)  		goto err_out_disable_msi;  	} +	netxen_read_ula_info(adapter); +  	err = netxen_setup_netdev(adapter, netdev);  	if (err)  		goto err_out_disable_msi; @@ -1602,7 +1629,6 @@ err_out_free_res:  	pci_release_regions(pdev);  err_out_disable_pdev: -	pci_set_drvdata(pdev, NULL);  	pci_disable_device(pdev);  	return err;  } @@ -1661,7 +1687,6 @@ static void netxen_nic_remove(struct pci_dev *pdev)  	pci_release_regions(pdev);  	pci_disable_device(pdev); -	pci_set_drvdata(pdev, NULL);  	free_netdev(netdev);  }  | 
