mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
sfc/siena: Make MCDI logging support specific for Siena
Add a Siena Kconfig option and use it in stead of the sfc one. Rename the internal variable for the 'mcdi_logging_default' module parameter to avoid a naming conflict with the one in sfc.ko. Signed-off-by: Martin Habets <habetsm.xilinx@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
f62a074525
commit
58b6b3d537
|
|
@ -55,7 +55,7 @@ config SFC_SRIOV
|
|||
features, allowing accelerated network performance in
|
||||
virtualized environments.
|
||||
config SFC_MCDI_LOGGING
|
||||
bool "Solarflare SFC9000/SFC9100-family MCDI logging support"
|
||||
bool "Solarflare SFC9100-family MCDI logging support"
|
||||
depends on SFC
|
||||
default y
|
||||
help
|
||||
|
|
|
|||
|
|
@ -33,3 +33,13 @@ config SFC_SIENA_SRIOV
|
|||
This enables support for the Single Root I/O Virtualization
|
||||
features, allowing accelerated network performance in
|
||||
virtualized environments.
|
||||
config SFC_SIENA_MCDI_LOGGING
|
||||
bool "Solarflare SFC9000-family MCDI logging support"
|
||||
depends on SFC_SIENA
|
||||
default y
|
||||
help
|
||||
This enables support for tracing of MCDI (Management-Controller-to-
|
||||
Driver-Interface) commands and responses, allowing debugging of
|
||||
driver/firmware interaction. The tracing is actually enabled by
|
||||
a sysfs file 'mcdi_logging' under the PCI device, or via module
|
||||
parameter mcdi_logging_default.
|
||||
|
|
|
|||
|
|
@ -1170,7 +1170,7 @@ void efx_siena_fini_io(struct efx_nic *efx)
|
|||
pci_disable_device(efx->pci_dev);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
static ssize_t mcdi_logging_show(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
char *buf)
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ static inline void efx_schedule_channel_irq(struct efx_channel *channel)
|
|||
efx_schedule_channel(channel);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
void efx_siena_init_mcdi_logging(struct efx_nic *efx);
|
||||
void efx_siena_fini_mcdi_logging(struct efx_nic *efx);
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -51,9 +51,10 @@ static int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating,
|
|||
static bool efx_mcdi_poll_once(struct efx_nic *efx);
|
||||
static void efx_mcdi_abandon(struct efx_nic *efx);
|
||||
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
static bool mcdi_logging_default;
|
||||
module_param(mcdi_logging_default, bool, 0644);
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
static bool efx_siena_mcdi_logging_default;
|
||||
module_param_named(mcdi_logging_default, efx_siena_mcdi_logging_default,
|
||||
bool, 0644);
|
||||
MODULE_PARM_DESC(mcdi_logging_default,
|
||||
"Enable MCDI logging on newly-probed functions");
|
||||
#endif
|
||||
|
|
@ -70,12 +71,12 @@ int efx_siena_mcdi_init(struct efx_nic *efx)
|
|||
|
||||
mcdi = efx_mcdi(efx);
|
||||
mcdi->efx = efx;
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
/* consuming code assumes buffer is page-sized */
|
||||
mcdi->logging_buffer = (char *)__get_free_page(GFP_KERNEL);
|
||||
if (!mcdi->logging_buffer)
|
||||
goto fail1;
|
||||
mcdi->logging_enabled = mcdi_logging_default;
|
||||
mcdi->logging_enabled = efx_siena_mcdi_logging_default;
|
||||
#endif
|
||||
init_waitqueue_head(&mcdi->wq);
|
||||
init_waitqueue_head(&mcdi->proxy_rx_wq);
|
||||
|
|
@ -114,7 +115,7 @@ int efx_siena_mcdi_init(struct efx_nic *efx)
|
|||
|
||||
return 0;
|
||||
fail2:
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
free_page((unsigned long)mcdi->logging_buffer);
|
||||
fail1:
|
||||
#endif
|
||||
|
|
@ -140,7 +141,7 @@ void efx_siena_mcdi_fini(struct efx_nic *efx)
|
|||
if (!efx->mcdi)
|
||||
return;
|
||||
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
free_page((unsigned long)efx->mcdi->iface.logging_buffer);
|
||||
#endif
|
||||
|
||||
|
|
@ -151,7 +152,7 @@ static void efx_mcdi_send_request(struct efx_nic *efx, unsigned cmd,
|
|||
const efx_dword_t *inbuf, size_t inlen)
|
||||
{
|
||||
struct efx_mcdi_iface *mcdi = efx_mcdi(efx);
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
char *buf = mcdi->logging_buffer; /* page-sized */
|
||||
#endif
|
||||
efx_dword_t hdr[2];
|
||||
|
|
@ -198,7 +199,7 @@ static void efx_mcdi_send_request(struct efx_nic *efx, unsigned cmd,
|
|||
hdr_len = 8;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
if (mcdi->logging_enabled && !WARN_ON_ONCE(!buf)) {
|
||||
int bytes = 0;
|
||||
int i;
|
||||
|
|
@ -266,7 +267,7 @@ static void efx_mcdi_read_response_header(struct efx_nic *efx)
|
|||
{
|
||||
struct efx_mcdi_iface *mcdi = efx_mcdi(efx);
|
||||
unsigned int respseq, respcmd, error;
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
char *buf = mcdi->logging_buffer; /* page-sized */
|
||||
#endif
|
||||
efx_dword_t hdr;
|
||||
|
|
@ -286,7 +287,7 @@ static void efx_mcdi_read_response_header(struct efx_nic *efx)
|
|||
EFX_DWORD_FIELD(hdr, MC_CMD_V2_EXTN_IN_ACTUAL_LEN);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
if (mcdi->logging_enabled && !WARN_ON_ONCE(!buf)) {
|
||||
size_t hdr_len, data_len;
|
||||
int bytes = 0;
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ struct efx_mcdi_iface {
|
|||
spinlock_t async_lock;
|
||||
struct list_head async_list;
|
||||
struct timer_list async_timer;
|
||||
#ifdef CONFIG_SFC_MCDI_LOGGING
|
||||
#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
|
||||
char *logging_buffer;
|
||||
bool logging_enabled;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user