Loading drivers/net/sfc/falcon.c +7 −16 Original line number Diff line number Diff line Loading @@ -35,19 +35,12 @@ /** * struct falcon_nic_data - Falcon NIC state * @next_buffer_table: First available buffer table id * @pci_dev2: The secondary PCI device if present * @i2c_data: Operations and state for I2C bit-bashing algorithm * @int_error_count: Number of internal errors seen recently * @int_error_expire: Time at which error count will be expired */ struct falcon_nic_data { unsigned next_buffer_table; struct pci_dev *pci_dev2; struct i2c_algo_bit_data i2c_data; unsigned int_error_count; unsigned long int_error_expire; }; /************************************************************************** Loading Loading @@ -304,8 +297,6 @@ static int falcon_alloc_special_buffer(struct efx_nic *efx, struct efx_special_buffer *buffer, unsigned int len) { struct falcon_nic_data *nic_data = efx->nic_data; len = ALIGN(len, FALCON_BUF_SIZE); buffer->addr = pci_alloc_consistent(efx->pci_dev, len, Loading @@ -320,8 +311,8 @@ static int falcon_alloc_special_buffer(struct efx_nic *efx, memset(buffer->addr, 0xff, len); /* Select new buffer ID */ buffer->index = nic_data->next_buffer_table; nic_data->next_buffer_table += buffer->entries; buffer->index = efx->next_buffer_table; efx->next_buffer_table += buffer->entries; EFX_LOG(efx, "allocating special buffers %d-%d at %llx+%x " "(virt %p phys %llx)\n", buffer->index, Loading Loading @@ -1411,13 +1402,13 @@ static irqreturn_t falcon_fatal_interrupt(struct efx_nic *efx) falcon_disable_interrupts(efx); /* Count errors and reset or disable the NIC accordingly */ if (nic_data->int_error_count == 0 || time_after(jiffies, nic_data->int_error_expire)) { nic_data->int_error_count = 0; nic_data->int_error_expire = if (efx->int_error_count == 0 || time_after(jiffies, efx->int_error_expire)) { efx->int_error_count = 0; efx->int_error_expire = jiffies + FALCON_INT_ERROR_EXPIRE * HZ; } if (++nic_data->int_error_count < FALCON_MAX_INT_ERRORS) { if (++efx->int_error_count < FALCON_MAX_INT_ERRORS) { EFX_ERR(efx, "SYSTEM ERROR - reset scheduled\n"); efx_schedule_reset(efx, RESET_TYPE_INT_ERROR); } else { Loading drivers/net/sfc/net_driver.h +7 −0 Original line number Diff line number Diff line Loading @@ -688,10 +688,13 @@ union efx_multicast_hash { * @tx_queue: TX DMA queues * @rx_queue: RX DMA queues * @channel: Channels * @next_buffer_table: First available buffer table id * @n_rx_queues: Number of RX queues * @n_channels: Number of channels in use * @rx_buffer_len: RX buffer length * @rx_buffer_order: Order (log2) of number of pages for each RX buffer * @int_error_count: Number of internal errors seen recently * @int_error_expire: Time at which error count will be expired * @irq_status: Interrupt status buffer * @last_irq_cpu: Last CPU to handle interrupt. * This register is written with the SMP processor ID whenever an Loading Loading @@ -775,11 +778,15 @@ struct efx_nic { struct efx_rx_queue rx_queue[EFX_MAX_RX_QUEUES]; struct efx_channel channel[EFX_MAX_CHANNELS]; unsigned next_buffer_table; int n_rx_queues; int n_channels; unsigned int rx_buffer_len; unsigned int rx_buffer_order; unsigned int_error_count; unsigned long int_error_expire; struct efx_buffer irq_status; volatile signed int last_irq_cpu; Loading Loading
drivers/net/sfc/falcon.c +7 −16 Original line number Diff line number Diff line Loading @@ -35,19 +35,12 @@ /** * struct falcon_nic_data - Falcon NIC state * @next_buffer_table: First available buffer table id * @pci_dev2: The secondary PCI device if present * @i2c_data: Operations and state for I2C bit-bashing algorithm * @int_error_count: Number of internal errors seen recently * @int_error_expire: Time at which error count will be expired */ struct falcon_nic_data { unsigned next_buffer_table; struct pci_dev *pci_dev2; struct i2c_algo_bit_data i2c_data; unsigned int_error_count; unsigned long int_error_expire; }; /************************************************************************** Loading Loading @@ -304,8 +297,6 @@ static int falcon_alloc_special_buffer(struct efx_nic *efx, struct efx_special_buffer *buffer, unsigned int len) { struct falcon_nic_data *nic_data = efx->nic_data; len = ALIGN(len, FALCON_BUF_SIZE); buffer->addr = pci_alloc_consistent(efx->pci_dev, len, Loading @@ -320,8 +311,8 @@ static int falcon_alloc_special_buffer(struct efx_nic *efx, memset(buffer->addr, 0xff, len); /* Select new buffer ID */ buffer->index = nic_data->next_buffer_table; nic_data->next_buffer_table += buffer->entries; buffer->index = efx->next_buffer_table; efx->next_buffer_table += buffer->entries; EFX_LOG(efx, "allocating special buffers %d-%d at %llx+%x " "(virt %p phys %llx)\n", buffer->index, Loading Loading @@ -1411,13 +1402,13 @@ static irqreturn_t falcon_fatal_interrupt(struct efx_nic *efx) falcon_disable_interrupts(efx); /* Count errors and reset or disable the NIC accordingly */ if (nic_data->int_error_count == 0 || time_after(jiffies, nic_data->int_error_expire)) { nic_data->int_error_count = 0; nic_data->int_error_expire = if (efx->int_error_count == 0 || time_after(jiffies, efx->int_error_expire)) { efx->int_error_count = 0; efx->int_error_expire = jiffies + FALCON_INT_ERROR_EXPIRE * HZ; } if (++nic_data->int_error_count < FALCON_MAX_INT_ERRORS) { if (++efx->int_error_count < FALCON_MAX_INT_ERRORS) { EFX_ERR(efx, "SYSTEM ERROR - reset scheduled\n"); efx_schedule_reset(efx, RESET_TYPE_INT_ERROR); } else { Loading
drivers/net/sfc/net_driver.h +7 −0 Original line number Diff line number Diff line Loading @@ -688,10 +688,13 @@ union efx_multicast_hash { * @tx_queue: TX DMA queues * @rx_queue: RX DMA queues * @channel: Channels * @next_buffer_table: First available buffer table id * @n_rx_queues: Number of RX queues * @n_channels: Number of channels in use * @rx_buffer_len: RX buffer length * @rx_buffer_order: Order (log2) of number of pages for each RX buffer * @int_error_count: Number of internal errors seen recently * @int_error_expire: Time at which error count will be expired * @irq_status: Interrupt status buffer * @last_irq_cpu: Last CPU to handle interrupt. * This register is written with the SMP processor ID whenever an Loading Loading @@ -775,11 +778,15 @@ struct efx_nic { struct efx_rx_queue rx_queue[EFX_MAX_RX_QUEUES]; struct efx_channel channel[EFX_MAX_CHANNELS]; unsigned next_buffer_table; int n_rx_queues; int n_channels; unsigned int rx_buffer_len; unsigned int rx_buffer_order; unsigned int_error_count; unsigned long int_error_expire; struct efx_buffer irq_status; volatile signed int last_irq_cpu; Loading