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

Commit 4f1b50c3 authored by Allen Hubbe's avatar Allen Hubbe Committed by Jon Mason
Browse files

NTB: Remove _addr functions from ntb_hw_amd



Kernel zero day testing warned about address space confusion.  A virtual
iomem address was used where a physical address is expected.  The
offending functions implement an optional part of the api, so they are
removed.  They can be added later, after testing.

Fixes: a1b36958

Signed-off-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
Acked-by: default avatarXiangliang Yu <Xiangliang.Yu@amd.com>
Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
parent afc54992
Loading
Loading
Loading
Loading
+0 −30
Original line number Diff line number Diff line
@@ -357,20 +357,6 @@ static int amd_ntb_db_clear_mask(struct ntb_dev *ntb, u64 db_bits)
	return 0;
}

static int amd_ntb_peer_db_addr(struct ntb_dev *ntb,
				phys_addr_t *db_addr,
				resource_size_t *db_size)
{
	struct amd_ntb_dev *ndev = ntb_ndev(ntb);

	if (db_addr)
		*db_addr = (phys_addr_t)(ndev->peer_mmio + AMD_DBREQ_OFFSET);
	if (db_size)
		*db_size = sizeof(u32);

	return 0;
}

static int amd_ntb_peer_db_set(struct ntb_dev *ntb, u64 db_bits)
{
	struct amd_ntb_dev *ndev = ntb_ndev(ntb);
@@ -415,20 +401,6 @@ static int amd_ntb_spad_write(struct ntb_dev *ntb,
	return 0;
}

static int amd_ntb_peer_spad_addr(struct ntb_dev *ntb, int idx,
				  phys_addr_t *spad_addr)
{
	struct amd_ntb_dev *ndev = ntb_ndev(ntb);

	if (idx < 0 || idx >= ndev->spad_count)
		return -EINVAL;

	if (spad_addr)
		*spad_addr = (phys_addr_t)(ndev->self_mmio + AMD_SPAD_OFFSET +
					   ndev->peer_spad + (idx << 2));
	return 0;
}

static u32 amd_ntb_peer_spad_read(struct ntb_dev *ntb, int idx)
{
	struct amd_ntb_dev *ndev = ntb_ndev(ntb);
@@ -472,12 +444,10 @@ static const struct ntb_dev_ops amd_ntb_ops = {
	.db_clear		= amd_ntb_db_clear,
	.db_set_mask		= amd_ntb_db_set_mask,
	.db_clear_mask		= amd_ntb_db_clear_mask,
	.peer_db_addr		= amd_ntb_peer_db_addr,
	.peer_db_set		= amd_ntb_peer_db_set,
	.spad_count		= amd_ntb_spad_count,
	.spad_read		= amd_ntb_spad_read,
	.spad_write		= amd_ntb_spad_write,
	.peer_spad_addr		= amd_ntb_peer_spad_addr,
	.peer_spad_read		= amd_ntb_peer_spad_read,
	.peer_spad_write	= amd_ntb_peer_spad_write,
};