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

Commit 636f35b3 authored by Dmitry Bogdanov's avatar Dmitry Bogdanov Committed by Lakshit Tyagi
Browse files

atlantic forwarding driver v1.1.15



 [ATLDRV-1613] - Atlantic_fwd driver hitting NULL pointer
 dereference at 0000000000000678 while requesting rx rings.

Change-Id: I89984d94d6093655ea5596cb1f297fc548cc42b4
Signed-off-by: default avatarDmitry Bogdanov <dbogdanov@marvell.com>
Git-commit: 3dc6f4c6d29722da5e0f1a9894bb9b608c0d38a3
Git-repo: https://github.com/aquantia/linux-4.14-atlantic-forwarding


[ltyagi@codeaurora.org: Fix compilation error in atl_ptp_irq]
Signed-off-by: default avatarLakshit Tyagi <ltyagi@codeaurora.org>
parent 10b066c1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
#include <linux/netdevice.h>
#include <linux/moduleparam.h>

#define ATL_VERSION "1.1.14"
#define ATL_VERSION "1.1.15"

struct atl_nic;

@@ -400,6 +400,7 @@ void atl_clear_tdm_cache(struct atl_nic *nic);
int atl_alloc_rings(struct atl_nic *nic);
void atl_free_rings(struct atl_nic *nic);
irqreturn_t atl_ring_irq(int irq, void *priv);
irqreturn_t atl_ptp_irq(int irq, void *private);
void atl_ring_work(struct work_struct *work);
void atl_start_hw_global(struct atl_nic *nic);
int atl_intr_init(struct atl_nic *nic);
+3 −1
Original line number Diff line number Diff line
@@ -575,8 +575,10 @@ static irqreturn_t atl_legacy_irq(int irq, void *priv)
		}
	}

	if (unlikely(stat & hw->non_ring_intr_mask))
	if (unlikely(stat & BIT(ATL_IRQ_LINK)))
		atl_link_irq(irq, nic);
	if (unlikely(stat & BIT(ATL_IRQ_PTP)))
		atl_ptp_irq(irq, nic->ptp);
	return IRQ_HANDLED;
}

+22 −17
Original line number Diff line number Diff line
@@ -613,21 +613,6 @@ static int atl_ptp_poll(struct napi_struct *napi, int budget)
	return work_done;
}

static irqreturn_t atl_ptp_irq(int irq, void *private)
{
	struct atl_ptp *ptp = private;
	int err = 0;

	if (!ptp) {
		err = -EINVAL;
		goto err_exit;
	}
	napi_schedule_irqoff(ptp->napi);

err_exit:
	return err >= 0 ? IRQ_HANDLED : IRQ_NONE;
}

static struct ptp_clock_info atl_ptp_clock = {
	.owner		= THIS_MODULE,
	.name		= "atlantic ptp",
@@ -846,6 +831,25 @@ static void atl_ptp_poll_sync_work_cb(struct work_struct *w)

#endif /* IS_REACHABLE(CONFIG_PTP_1588_CLOCK) */

irqreturn_t atl_ptp_irq(int irq, void *private)
{
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
	struct atl_ptp *ptp = private;
	int err = 0;

	if (!ptp) {
		err = -EINVAL;
		goto err_exit;
	}
	napi_schedule_irqoff(ptp->napi);

err_exit:
	return err >= 0 ? IRQ_HANDLED : IRQ_NONE;
#else
	return IRQ_NONE;
#endif
}

void atl_ptp_tm_offset_set(struct atl_nic *nic, unsigned int mbps)
{
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
@@ -1068,7 +1072,7 @@ int atl_ptp_irq_alloc(struct atl_nic *nic)
				  atl_ptp_irq, 0, nic->ndev->name, ptp);
	}

	return -EINVAL;
	return 0;
#else
	return 0;
#endif
@@ -1084,6 +1088,7 @@ void atl_ptp_irq_free(struct atl_nic *nic)
		return;

	atl_intr_disable(hw, BIT(ptp->idx_vector));
	if (nic->flags & ATL_FL_MULTIPLE_VECTORS)
		free_irq(pci_irq_vector(hw->pdev, ptp->idx_vector), ptp);
#endif
}
+4 −1
Original line number Diff line number Diff line
Version 1.1.15
==============
[ATLDRV-1613] - Atlantic_fwd driver hitting NULL pointer dereference at 0000000000000678 while requesting rx rings

Version 1.1.14
==============
[ATLDRV-1609] - Facing failure for the DMA Network Loopback Test
[ATLDRV-1605] - AQC107 GPIO_0 PPS alignment
[ATLDRV-1614] - probe of 0000:02:00.0 failed with error -22 after loading driver with "msi=N max_queues_non_msi=4"
[ATLDRV-1613] - Atlantic_fwd driver hitting NULL pointer dereference at 0000000000000678 while requesting rx rings

Version 1.1.13
==============