Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32d219ed authored by David S. Miller's avatar David S. Miller
Browse files
parents 21f7638e 73e0026f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -585,7 +585,12 @@ static int efx_probe_channels(struct efx_nic *efx)
	/* Restart special buffer allocation */
	efx->next_buffer_table = 0;

	efx_for_each_channel(channel, efx) {
	/* Probe channels in reverse, so that any 'extra' channels
	 * use the start of the buffer table. This allows the traffic
	 * channels to be resized without moving them or wasting the
	 * entries before them.
	 */
	efx_for_each_channel_rev(channel, efx) {
		rc = efx_probe_channel(channel);
		if (rc) {
			netif_err(efx, probe, efx->net_dev,
+6 −3
Original line number Diff line number Diff line
@@ -1030,6 +1030,9 @@ static inline bool efx_tx_queue_used(struct efx_tx_queue *tx_queue)

/* Iterate over all possible TX queues belonging to a channel */
#define efx_for_each_possible_channel_tx_queue(_tx_queue, _channel)	\
	if (!efx_channel_has_tx_queues(_channel))			\
		;							\
	else								\
		for (_tx_queue = (_channel)->tx_queue;			\
		     _tx_queue < (_channel)->tx_queue + EFX_TXQ_TYPES;	\
		     _tx_queue++)
+6 −5
Original line number Diff line number Diff line
@@ -796,12 +796,13 @@ static int efx_vfdi_set_status_page(struct efx_vf *vf)
{
	struct efx_nic *efx = vf->efx;
	struct vfdi_req *req = vf->buf.addr;
	unsigned int page_count;
	u64 page_count = req->u.set_status_page.peer_page_count;
	u64 max_page_count =
		(EFX_PAGE_SIZE -
		 offsetof(struct vfdi_req, u.set_status_page.peer_page_addr[0]))
		/ sizeof(req->u.set_status_page.peer_page_addr[0]);

	page_count = req->u.set_status_page.peer_page_count;
	if (!req->u.set_status_page.dma_addr || EFX_PAGE_SIZE <
	    offsetof(struct vfdi_req,
		     u.set_status_page.peer_page_addr[page_count])) {
	if (!req->u.set_status_page.dma_addr || page_count > max_page_count) {
		if (net_ratelimit())
			netif_err(efx, hw, efx->net_dev,
				  "ERROR: Invalid SET_STATUS_PAGE from %s\n",
+2 −1
Original line number Diff line number Diff line
@@ -152,7 +152,8 @@ enum vfdi_op {
 *	all traffic at this receive queue.
 * @u.mac_filter.flags: MAC filter flags.
 * @u.set_status_page.dma_addr: Base address for the &struct vfdi_status.
 *	This address must be such that the structure fits within a page.
 *	This address must be page-aligned and the PF may write up to a
 *	whole page (allowing for extension of the structure).
 * @u.set_status_page.peer_page_count: Number of additional pages the VF
 *	has provided into which peer addresses may be DMAd.
 * @u.set_status_page.peer_page_addr: Array of DMA addresses of pages.
+1 −1

File changed.

Contains only whitespace changes.

+2 −2

File changed.

Contains only whitespace changes.

+1 −1

File changed.

Contains only whitespace changes.

Loading