Commit e72ee3ed authored by David S. Miller's avatar David S. Miller

Merge branch 'qlcnic-enhancements'

Shahed Shaikh says:

====================
qlcnic: enhancements

This series adds few enhancements.

  o Patch from Harish reorders the sequence of header files inclusion,
    keeping kernel's header files on top.

  o Firmware introduced a new feature which allows driver to increases
    the size of firmware dump of iSCSI function which is being collected
    by NIC driver.

  o Print buffer address which is holding a firmware dump.

  o Use vzalloc() instead kzalloc() for allocating large chunk of memory
    which will avoid potential memory allocation failure.

  o Add new device ID for 0x8C30 which is a 83xx series based VF function.

Please apply this series to net-next.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 07151bc9 02509f17
...@@ -24,9 +24,7 @@ ...@@ -24,9 +24,7 @@
#include <linux/mii.h> #include <linux/mii.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/io.h> #include <linux/io.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <linux/bitops.h> #include <linux/bitops.h>
...@@ -39,8 +37,8 @@ ...@@ -39,8 +37,8 @@
#define _QLCNIC_LINUX_MAJOR 5 #define _QLCNIC_LINUX_MAJOR 5
#define _QLCNIC_LINUX_MINOR 3 #define _QLCNIC_LINUX_MINOR 3
#define _QLCNIC_LINUX_SUBVERSION 62 #define _QLCNIC_LINUX_SUBVERSION 63
#define QLCNIC_LINUX_VERSIONID "5.3.62" #define QLCNIC_LINUX_VERSIONID "5.3.63"
#define QLCNIC_DRV_IDC_VER 0x01 #define QLCNIC_DRV_IDC_VER 0x01
#define QLCNIC_DRIVER_VERSION ((_QLCNIC_LINUX_MAJOR << 16) |\ #define QLCNIC_DRIVER_VERSION ((_QLCNIC_LINUX_MAJOR << 16) |\
(_QLCNIC_LINUX_MINOR << 8) | (_QLCNIC_LINUX_SUBVERSION)) (_QLCNIC_LINUX_MINOR << 8) | (_QLCNIC_LINUX_SUBVERSION))
...@@ -926,6 +924,7 @@ struct qlcnic_mac_vlan_list { ...@@ -926,6 +924,7 @@ struct qlcnic_mac_vlan_list {
#define QLCNIC_FW_CAPABILITY_SET_DRV_VER BIT_5 #define QLCNIC_FW_CAPABILITY_SET_DRV_VER BIT_5
#define QLCNIC_FW_CAPABILITY_2_BEACON BIT_7 #define QLCNIC_FW_CAPABILITY_2_BEACON BIT_7
#define QLCNIC_FW_CAPABILITY_2_PER_PORT_ESWITCH_CFG BIT_9 #define QLCNIC_FW_CAPABILITY_2_PER_PORT_ESWITCH_CFG BIT_9
#define QLCNIC_FW_CAPABILITY_2_EXT_ISCSI_DUMP BIT_13
#define QLCNIC_83XX_FW_CAPAB_ENCAP_RX_OFFLOAD BIT_0 #define QLCNIC_83XX_FW_CAPAB_ENCAP_RX_OFFLOAD BIT_0
#define QLCNIC_83XX_FW_CAPAB_ENCAP_TX_OFFLOAD BIT_1 #define QLCNIC_83XX_FW_CAPAB_ENCAP_TX_OFFLOAD BIT_1
...@@ -2291,8 +2290,9 @@ extern const struct ethtool_ops qlcnic_ethtool_failed_ops; ...@@ -2291,8 +2290,9 @@ extern const struct ethtool_ops qlcnic_ethtool_failed_ops;
#define PCI_DEVICE_ID_QLOGIC_QLE824X 0x8020 #define PCI_DEVICE_ID_QLOGIC_QLE824X 0x8020
#define PCI_DEVICE_ID_QLOGIC_QLE834X 0x8030 #define PCI_DEVICE_ID_QLOGIC_QLE834X 0x8030
#define PCI_DEVICE_ID_QLOGIC_QLE8830 0x8830
#define PCI_DEVICE_ID_QLOGIC_VF_QLE834X 0x8430 #define PCI_DEVICE_ID_QLOGIC_VF_QLE834X 0x8430
#define PCI_DEVICE_ID_QLOGIC_QLE8830 0x8830
#define PCI_DEVICE_ID_QLOGIC_VF_QLE8C30 0x8C30
#define PCI_DEVICE_ID_QLOGIC_QLE844X 0x8040 #define PCI_DEVICE_ID_QLOGIC_QLE844X 0x8040
#define PCI_DEVICE_ID_QLOGIC_VF_QLE844X 0x8440 #define PCI_DEVICE_ID_QLOGIC_VF_QLE844X 0x8440
...@@ -2319,7 +2319,8 @@ static inline bool qlcnic_83xx_check(struct qlcnic_adapter *adapter) ...@@ -2319,7 +2319,8 @@ static inline bool qlcnic_83xx_check(struct qlcnic_adapter *adapter)
(device == PCI_DEVICE_ID_QLOGIC_QLE8830) || (device == PCI_DEVICE_ID_QLOGIC_QLE8830) ||
(device == PCI_DEVICE_ID_QLOGIC_QLE844X) || (device == PCI_DEVICE_ID_QLOGIC_QLE844X) ||
(device == PCI_DEVICE_ID_QLOGIC_VF_QLE844X) || (device == PCI_DEVICE_ID_QLOGIC_VF_QLE844X) ||
(device == PCI_DEVICE_ID_QLOGIC_VF_QLE834X)) ? true : false; (device == PCI_DEVICE_ID_QLOGIC_VF_QLE834X) ||
(device == PCI_DEVICE_ID_QLOGIC_VF_QLE8C30)) ? true : false;
return status; return status;
} }
...@@ -2335,7 +2336,8 @@ static inline bool qlcnic_sriov_vf_check(struct qlcnic_adapter *adapter) ...@@ -2335,7 +2336,8 @@ static inline bool qlcnic_sriov_vf_check(struct qlcnic_adapter *adapter)
bool status; bool status;
status = ((device == PCI_DEVICE_ID_QLOGIC_VF_QLE834X) || status = ((device == PCI_DEVICE_ID_QLOGIC_VF_QLE834X) ||
(device == PCI_DEVICE_ID_QLOGIC_VF_QLE844X)) ? true : false; (device == PCI_DEVICE_ID_QLOGIC_VF_QLE844X) ||
(device == PCI_DEVICE_ID_QLOGIC_VF_QLE8C30)) ? true : false;
return status; return status;
} }
...@@ -2351,7 +2353,8 @@ static inline bool qlcnic_83xx_vf_check(struct qlcnic_adapter *adapter) ...@@ -2351,7 +2353,8 @@ static inline bool qlcnic_83xx_vf_check(struct qlcnic_adapter *adapter)
{ {
unsigned short device = adapter->pdev->device; unsigned short device = adapter->pdev->device;
return (device == PCI_DEVICE_ID_QLOGIC_VF_QLE834X) ? true : false; return ((device == PCI_DEVICE_ID_QLOGIC_VF_QLE834X) ||
(device == PCI_DEVICE_ID_QLOGIC_VF_QLE8C30)) ? true : false;
} }
static inline bool qlcnic_sriov_check(struct qlcnic_adapter *adapter) static inline bool qlcnic_sriov_check(struct qlcnic_adapter *adapter)
......
...@@ -5,14 +5,15 @@ ...@@ -5,14 +5,15 @@
* See LICENSE.qlcnic for copyright and licensing details. * See LICENSE.qlcnic for copyright and licensing details.
*/ */
#include "qlcnic.h"
#include "qlcnic_sriov.h"
#include <linux/if_vlan.h> #include <linux/if_vlan.h>
#include <linux/ipv6.h> #include <linux/ipv6.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/aer.h> #include <linux/aer.h>
#include "qlcnic.h"
#include "qlcnic_sriov.h"
static void __qlcnic_83xx_process_aen(struct qlcnic_adapter *); static void __qlcnic_83xx_process_aen(struct qlcnic_adapter *);
static int qlcnic_83xx_clear_lb_mode(struct qlcnic_adapter *, u8); static int qlcnic_83xx_clear_lb_mode(struct qlcnic_adapter *, u8);
static void qlcnic_83xx_configure_mac(struct qlcnic_adapter *, u8 *, u8, static void qlcnic_83xx_configure_mac(struct qlcnic_adapter *, u8 *, u8,
...@@ -118,6 +119,7 @@ static const struct qlcnic_mailbox_metadata qlcnic_83xx_mbx_tbl[] = { ...@@ -118,6 +119,7 @@ static const struct qlcnic_mailbox_metadata qlcnic_83xx_mbx_tbl[] = {
{QLCNIC_CMD_DCB_QUERY_CAP, 1, 2}, {QLCNIC_CMD_DCB_QUERY_CAP, 1, 2},
{QLCNIC_CMD_DCB_QUERY_PARAM, 1, 50}, {QLCNIC_CMD_DCB_QUERY_PARAM, 1, 50},
{QLCNIC_CMD_SET_INGRESS_ENCAP, 2, 1}, {QLCNIC_CMD_SET_INGRESS_ENCAP, 2, 1},
{QLCNIC_CMD_83XX_EXTEND_ISCSI_DUMP_CAP, 4, 1},
}; };
const u32 qlcnic_83xx_ext_reg_tbl[] = { const u32 qlcnic_83xx_ext_reg_tbl[] = {
...@@ -3513,6 +3515,31 @@ void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data) ...@@ -3513,6 +3515,31 @@ void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data)
qlcnic_free_mbx_args(&cmd); qlcnic_free_mbx_args(&cmd);
} }
#define QLCNIC_83XX_ADD_PORT0 BIT_0
#define QLCNIC_83XX_ADD_PORT1 BIT_1
#define QLCNIC_83XX_EXTENDED_MEM_SIZE 13 /* In MB */
int qlcnic_83xx_extend_md_capab(struct qlcnic_adapter *adapter)
{
struct qlcnic_cmd_args cmd;
int err;
err = qlcnic_alloc_mbx_args(&cmd, adapter,
QLCNIC_CMD_83XX_EXTEND_ISCSI_DUMP_CAP);
if (err)
return err;
cmd.req.arg[1] = (QLCNIC_83XX_ADD_PORT0 | QLCNIC_83XX_ADD_PORT1);
cmd.req.arg[2] = QLCNIC_83XX_EXTENDED_MEM_SIZE;
cmd.req.arg[3] = QLCNIC_83XX_EXTENDED_MEM_SIZE;
err = qlcnic_issue_cmd(adapter, &cmd);
if (err)
dev_err(&adapter->pdev->dev,
"failed to issue extend iSCSI minidump capability\n");
return err;
}
int qlcnic_83xx_reg_test(struct qlcnic_adapter *adapter) int qlcnic_83xx_reg_test(struct qlcnic_adapter *adapter)
{ {
u32 major, minor, sub; u32 major, minor, sub;
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include "qlcnic_hw.h" #include "qlcnic_hw.h"
#define QLCNIC_83XX_BAR0_LENGTH 0x4000 #define QLCNIC_83XX_BAR0_LENGTH 0x4000
...@@ -626,6 +627,7 @@ int qlcnic_83xx_set_port_eswitch_status(struct qlcnic_adapter *, int, int *); ...@@ -626,6 +627,7 @@ int qlcnic_83xx_set_port_eswitch_status(struct qlcnic_adapter *, int, int *);
void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *); void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *);
void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data); void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data);
int qlcnic_83xx_extend_md_capab(struct qlcnic_adapter *);
int qlcnic_83xx_get_settings(struct qlcnic_adapter *, struct ethtool_cmd *); int qlcnic_83xx_get_settings(struct qlcnic_adapter *, struct ethtool_cmd *);
int qlcnic_83xx_set_settings(struct qlcnic_adapter *, struct ethtool_cmd *); int qlcnic_83xx_set_settings(struct qlcnic_adapter *, struct ethtool_cmd *);
void qlcnic_83xx_get_pauseparam(struct qlcnic_adapter *, void qlcnic_83xx_get_pauseparam(struct qlcnic_adapter *,
......
...@@ -1384,7 +1384,7 @@ static int qlcnic_83xx_copy_fw_file(struct qlcnic_adapter *adapter) ...@@ -1384,7 +1384,7 @@ static int qlcnic_83xx_copy_fw_file(struct qlcnic_adapter *adapter)
size_t size; size_t size;
u64 addr; u64 addr;
temp = kzalloc(fw->size, GFP_KERNEL); temp = vzalloc(fw->size);
if (!temp) { if (!temp) {
release_firmware(fw); release_firmware(fw);
fw_info->fw = NULL; fw_info->fw = NULL;
...@@ -1430,7 +1430,7 @@ static int qlcnic_83xx_copy_fw_file(struct qlcnic_adapter *adapter) ...@@ -1430,7 +1430,7 @@ static int qlcnic_83xx_copy_fw_file(struct qlcnic_adapter *adapter)
exit: exit:
release_firmware(fw); release_firmware(fw);
fw_info->fw = NULL; fw_info->fw = NULL;
kfree(temp); vfree(temp);
return ret; return ret;
} }
......
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
* See LICENSE.qlcnic for copyright and licensing details. * See LICENSE.qlcnic for copyright and licensing details.
*/ */
#include "qlcnic.h"
#include "qlcnic_hdr.h"
#include <linux/slab.h> #include <linux/slab.h>
#include <net/ip.h> #include <net/ip.h>
#include <linux/bitops.h> #include <linux/bitops.h>
#include "qlcnic.h"
#include "qlcnic_hdr.h"
#define MASK(n) ((1ULL<<(n))-1) #define MASK(n) ((1ULL<<(n))-1)
#define OCM_WIN_P3P(addr) (addr & 0xffc0000) #define OCM_WIN_P3P(addr) (addr & 0xffc0000)
......
...@@ -109,6 +109,7 @@ enum qlcnic_regs { ...@@ -109,6 +109,7 @@ enum qlcnic_regs {
#define QLCNIC_CMD_GET_LED_CONFIG 0x6A #define QLCNIC_CMD_GET_LED_CONFIG 0x6A
#define QLCNIC_CMD_83XX_SET_DRV_VER 0x6F #define QLCNIC_CMD_83XX_SET_DRV_VER 0x6F
#define QLCNIC_CMD_ADD_RCV_RINGS 0x0B #define QLCNIC_CMD_ADD_RCV_RINGS 0x0B
#define QLCNIC_CMD_83XX_EXTEND_ISCSI_DUMP_CAP 0x37
#define QLCNIC_INTRPT_INTX 1 #define QLCNIC_INTRPT_INTX 1
#define QLCNIC_INTRPT_MSIX 3 #define QLCNIC_INTRPT_MSIX 3
......
...@@ -7,11 +7,6 @@ ...@@ -7,11 +7,6 @@
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include "qlcnic.h"
#include "qlcnic_sriov.h"
#include "qlcnic_hw.h"
#include <linux/swab.h> #include <linux/swab.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/if_vlan.h> #include <linux/if_vlan.h>
...@@ -25,6 +20,10 @@ ...@@ -25,6 +20,10 @@
#include <net/vxlan.h> #include <net/vxlan.h>
#endif #endif
#include "qlcnic.h"
#include "qlcnic_sriov.h"
#include "qlcnic_hw.h"
MODULE_DESCRIPTION("QLogic 1/10 GbE Converged/Intelligent Ethernet Driver"); MODULE_DESCRIPTION("QLogic 1/10 GbE Converged/Intelligent Ethernet Driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_VERSION(QLCNIC_LINUX_VERSIONID); MODULE_VERSION(QLCNIC_LINUX_VERSIONID);
...@@ -111,8 +110,9 @@ static u32 qlcnic_vlan_tx_check(struct qlcnic_adapter *adapter) ...@@ -111,8 +110,9 @@ static u32 qlcnic_vlan_tx_check(struct qlcnic_adapter *adapter)
static const struct pci_device_id qlcnic_pci_tbl[] = { static const struct pci_device_id qlcnic_pci_tbl[] = {
ENTRY(PCI_DEVICE_ID_QLOGIC_QLE824X), ENTRY(PCI_DEVICE_ID_QLOGIC_QLE824X),
ENTRY(PCI_DEVICE_ID_QLOGIC_QLE834X), ENTRY(PCI_DEVICE_ID_QLOGIC_QLE834X),
ENTRY(PCI_DEVICE_ID_QLOGIC_QLE8830),
ENTRY(PCI_DEVICE_ID_QLOGIC_VF_QLE834X), ENTRY(PCI_DEVICE_ID_QLOGIC_VF_QLE834X),
ENTRY(PCI_DEVICE_ID_QLOGIC_QLE8830),
ENTRY(PCI_DEVICE_ID_QLOGIC_VF_QLE8C30),
ENTRY(PCI_DEVICE_ID_QLOGIC_QLE844X), ENTRY(PCI_DEVICE_ID_QLOGIC_QLE844X),
ENTRY(PCI_DEVICE_ID_QLOGIC_VF_QLE844X), ENTRY(PCI_DEVICE_ID_QLOGIC_VF_QLE844X),
{0,} {0,}
...@@ -1149,6 +1149,7 @@ static void qlcnic_get_bar_length(u32 dev_id, ulong *bar) ...@@ -1149,6 +1149,7 @@ static void qlcnic_get_bar_length(u32 dev_id, ulong *bar)
case PCI_DEVICE_ID_QLOGIC_QLE844X: case PCI_DEVICE_ID_QLOGIC_QLE844X:
case PCI_DEVICE_ID_QLOGIC_VF_QLE834X: case PCI_DEVICE_ID_QLOGIC_VF_QLE834X:
case PCI_DEVICE_ID_QLOGIC_VF_QLE844X: case PCI_DEVICE_ID_QLOGIC_VF_QLE844X:
case PCI_DEVICE_ID_QLOGIC_VF_QLE8C30:
*bar = QLCNIC_83XX_BAR0_LENGTH; *bar = QLCNIC_83XX_BAR0_LENGTH;
break; break;
default: default:
...@@ -2491,6 +2492,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -2491,6 +2492,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
qlcnic_83xx_register_map(ahw); qlcnic_83xx_register_map(ahw);
break; break;
case PCI_DEVICE_ID_QLOGIC_VF_QLE834X: case PCI_DEVICE_ID_QLOGIC_VF_QLE834X:
case PCI_DEVICE_ID_QLOGIC_VF_QLE8C30:
case PCI_DEVICE_ID_QLOGIC_VF_QLE844X: case PCI_DEVICE_ID_QLOGIC_VF_QLE844X:
qlcnic_sriov_vf_register_map(ahw); qlcnic_sriov_vf_register_map(ahw);
break; break;
......
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
* See LICENSE.qlcnic for copyright and licensing details. * See LICENSE.qlcnic for copyright and licensing details.
*/ */
#include <net/ip.h>
#include "qlcnic.h" #include "qlcnic.h"
#include "qlcnic_hdr.h" #include "qlcnic_hdr.h"
#include "qlcnic_83xx_hw.h" #include "qlcnic_83xx_hw.h"
#include "qlcnic_hw.h" #include "qlcnic_hw.h"
#include <net/ip.h>
#define QLC_83XX_MINIDUMP_FLASH 0x520000 #define QLC_83XX_MINIDUMP_FLASH 0x520000
#define QLC_83XX_OCM_INDEX 3 #define QLC_83XX_OCM_INDEX 3
#define QLC_83XX_PCI_INDEX 0 #define QLC_83XX_PCI_INDEX 0
...@@ -1388,27 +1388,60 @@ int qlcnic_dump_fw(struct qlcnic_adapter *adapter) ...@@ -1388,27 +1388,60 @@ int qlcnic_dump_fw(struct qlcnic_adapter *adapter)
fw_dump->clr = 1; fw_dump->clr = 1;
snprintf(mesg, sizeof(mesg), "FW_DUMP=%s", adapter->netdev->name); snprintf(mesg, sizeof(mesg), "FW_DUMP=%s", adapter->netdev->name);
netdev_info(adapter->netdev, netdev_info(adapter->netdev,
"Dump data %d bytes captured, template header size %d bytes\n", "Dump data %d bytes captured, dump data address = %p, template header size %d bytes, template address = %p\n",
fw_dump->size, fw_dump->tmpl_hdr_size); fw_dump->size, fw_dump->data, fw_dump->tmpl_hdr_size,
fw_dump->tmpl_hdr);
/* Send a udev event to notify availability of FW dump */ /* Send a udev event to notify availability of FW dump */
kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, msg); kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, msg);
return 0; return 0;
} }
static inline bool
qlcnic_83xx_md_check_extended_dump_capability(struct qlcnic_adapter *adapter)
{
/* For special adapters (with 0x8830 device ID), where iSCSI firmware
* dump needs to be captured as part of regular firmware dump
* collection process, firmware exports it's capability through
* capability registers
*/
return ((adapter->pdev->device == PCI_DEVICE_ID_QLOGIC_QLE8830) &&
(adapter->ahw->extra_capability[0] &
QLCNIC_FW_CAPABILITY_2_EXT_ISCSI_DUMP));
}
void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *adapter) void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *adapter)
{ {
u32 prev_version, current_version; u32 prev_version, current_version;
struct qlcnic_hardware_context *ahw = adapter->ahw; struct qlcnic_hardware_context *ahw = adapter->ahw;
struct qlcnic_fw_dump *fw_dump = &ahw->fw_dump; struct qlcnic_fw_dump *fw_dump = &ahw->fw_dump;
struct pci_dev *pdev = adapter->pdev; struct pci_dev *pdev = adapter->pdev;
bool extended = false;
prev_version = adapter->fw_version; prev_version = adapter->fw_version;
current_version = qlcnic_83xx_get_fw_version(adapter); current_version = qlcnic_83xx_get_fw_version(adapter);
if (fw_dump->tmpl_hdr == NULL || current_version > prev_version) { if (fw_dump->tmpl_hdr == NULL || current_version > prev_version) {
vfree(fw_dump->tmpl_hdr); vfree(fw_dump->tmpl_hdr);
if (qlcnic_83xx_md_check_extended_dump_capability(adapter))
extended = !qlcnic_83xx_extend_md_capab(adapter);
if (!qlcnic_fw_cmd_get_minidump_temp(adapter)) if (!qlcnic_fw_cmd_get_minidump_temp(adapter))
dev_info(&pdev->dev, "Supports FW dump capability\n"); dev_info(&pdev->dev, "Supports FW dump capability\n");
/* Once we have minidump template with extended iSCSI dump
* capability, update the minidump capture mask to 0x1f as
* per FW requirement
*/
if (extended) {
struct qlcnic_83xx_dump_template_hdr *hdr;
hdr = fw_dump->tmpl_hdr;
hdr->drv_cap_mask = 0x1f;
fw_dump->cap_mask = 0x1f;
dev_info(&pdev->dev,
"Extended iSCSI dump capability and updated capture mask to 0x1f\n");
}
} }
} }
...@@ -8,10 +8,11 @@ ...@@ -8,10 +8,11 @@
#ifndef _QLCNIC_83XX_SRIOV_H_ #ifndef _QLCNIC_83XX_SRIOV_H_
#define _QLCNIC_83XX_SRIOV_H_ #define _QLCNIC_83XX_SRIOV_H_
#include "qlcnic.h"
#include <linux/types.h> #include <linux/types.h>
#include <linux/pci.h> #include <linux/pci.h>
#include "qlcnic.h"
extern const u32 qlcnic_83xx_reg_tbl[]; extern const u32 qlcnic_83xx_reg_tbl[];
extern const u32 qlcnic_83xx_ext_reg_tbl[]; extern const u32 qlcnic_83xx_ext_reg_tbl[];
......
...@@ -5,10 +5,11 @@ ...@@ -5,10 +5,11 @@
* See LICENSE.qlcnic for copyright and licensing details. * See LICENSE.qlcnic for copyright and licensing details.
*/ */
#include <linux/types.h>
#include "qlcnic_sriov.h" #include "qlcnic_sriov.h"
#include "qlcnic.h" #include "qlcnic.h"
#include "qlcnic_83xx_hw.h" #include "qlcnic_83xx_hw.h"
#include <linux/types.h>
#define QLC_BC_COMMAND 0 #define QLC_BC_COMMAND 0
#define QLC_BC_RESPONSE 1 #define QLC_BC_RESPONSE 1
......
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
* See LICENSE.qlcnic for copyright and licensing details. * See LICENSE.qlcnic for copyright and licensing details.
*/ */
#include <linux/types.h>
#include "qlcnic_sriov.h" #include "qlcnic_sriov.h"
#include "qlcnic.h" #include "qlcnic.h"
#include <linux/types.h>
#define QLCNIC_SRIOV_VF_MAX_MAC 7 #define QLCNIC_SRIOV_VF_MAX_MAC 7
#define QLC_VF_MIN_TX_RATE 100 #define QLC_VF_MIN_TX_RATE 100
......
...@@ -7,10 +7,6 @@ ...@@ -7,10 +7,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include "qlcnic.h"
#include "qlcnic_hw.h"
#include <linux/swab.h> #include <linux/swab.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <net/ip.h> #include <net/ip.h>
...@@ -24,6 +20,9 @@ ...@@ -24,6 +20,9 @@
#include <linux/hwmon-sysfs.h> #include <linux/hwmon-sysfs.h>
#endif #endif
#include "qlcnic.h"
#include "qlcnic_hw.h"
int qlcnicvf_config_bridged_mode(struct qlcnic_adapter *adapter, u32 enable) int qlcnicvf_config_bridged_mode(struct qlcnic_adapter *adapter, u32 enable)
{ {
return -EOPNOTSUPP; return -EOPNOTSUPP;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment