NTB: zero PCI driver data

Zero pci_device_id driver_data variable.  Unused, but 'EXTRA_CFLAGS=-W'
complained of uninitialized variables.

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: declare unused variables

Tag pci_device_id in ntb_pci_probe as unused function parameters.  This
corrects issues found by 'EXTRA_CFLAGS=-W'.

Signed-off-by: Jon Mason <jon.mason@intel.com>
ntb_netdev: declare unused variables and fix missing initializer

Tag qp in ntb_netdev_tx_handler and net_device in ntb_get_settings as
unused function parameters.  Also, correct missing initializer errors
for 'struct device_driver' in ntb_netdev_client.  This corrects issues
found by 'EXTRA_CFLAGS=-W'.

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: Disable interrupts and poll under high load

Disable interrupts and poll under high load

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: Remove lists

Remove lists in favor of statically sized arrays

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: ntb_test module

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: AER support

Add AER support for the NTB driver

NOTE: BWD Link down does not disable the link!

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: Xeon AER support

In Xeon NTB, AER appears as a vendor specific extended capability of PCI
Config space, and not the standard PCI AER capability.  Unfortunately,
this means it cannot use the Linux AER infrastructure and must do its
own detection and recovery.

When an AER event occurs, a link interrupt is encountered.  The driver
must now check on all link interrupts for AER events and Link changes.
For all correctable and non-fatal events, log the error and continue
running as normal.  If a fatal event is encountered, retrain the link
and attempt to recover.

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: add multiqueue support to ntb_netdev

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: Add ability to disable MSI/MSI-X interrupts

Per request from validation, add ability to disable MSI-X and MSI.  This
allows them to more easily verify all interrupt types are working.

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: client event cleanup

Provide a better event interface between the client and transport

Signed-off-by: Jon Mason <jon.mason@intel.com>
NTB: Heartbeat support

Add a heartbeat mechanism to determine if the remote system is
operational.  The local system periodically sends a doorbell to the
remote to let it know the system is functioning properly.  In the event
of a missed heartbeat, the driver will notify the transport layer that
the link is not functioning properly by sending a "link down"
notification.

Signed-off-by: Jon Mason <jon.mason@intel.com>