Skip to content

Commit

Permalink
NTB: Change WARN_ON_ONCE to pr_warn_once on unsafe
Browse files Browse the repository at this point in the history
The unsafe doorbell and scratchpad access should display reason when
WARN is called.  Otherwise we get a stack dump without any explanation.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
  • Loading branch information
Dave Jiang authored and Jon Mason committed Jul 4, 2015
1 parent 7eb3878 commit fd839bf
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions drivers/ntb/hw/intel/ntb_hw_intel.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,8 @@ static inline int ndev_db_addr(struct intel_ntb_dev *ndev,
phys_addr_t *db_addr, resource_size_t *db_size,
phys_addr_t reg_addr, unsigned long reg)
{
WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB));
if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB))
pr_warn_once("%s: NTB unsafe doorbell access", __func__);

if (db_addr) {
*db_addr = reg_addr + reg;
Expand All @@ -264,15 +265,17 @@ static inline int ndev_db_addr(struct intel_ntb_dev *ndev,
static inline u64 ndev_db_read(struct intel_ntb_dev *ndev,
void __iomem *mmio)
{
WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB));
if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB))
pr_warn_once("%s: NTB unsafe doorbell access", __func__);

return ndev->reg->db_ioread(mmio);
}

static inline int ndev_db_write(struct intel_ntb_dev *ndev, u64 db_bits,
void __iomem *mmio)
{
WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB));
if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB))
pr_warn_once("%s: NTB unsafe doorbell access", __func__);

if (db_bits & ~ndev->db_valid_mask)
return -EINVAL;
Expand All @@ -287,7 +290,8 @@ static inline int ndev_db_set_mask(struct intel_ntb_dev *ndev, u64 db_bits,
{
unsigned long irqflags;

WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB));
if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB))
pr_warn_once("%s: NTB unsafe doorbell access", __func__);

if (db_bits & ~ndev->db_valid_mask)
return -EINVAL;
Expand All @@ -307,7 +311,8 @@ static inline int ndev_db_clear_mask(struct intel_ntb_dev *ndev, u64 db_bits,
{
unsigned long irqflags;

WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB));
if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB))
pr_warn_once("%s: NTB unsafe doorbell access", __func__);

if (db_bits & ~ndev->db_valid_mask)
return -EINVAL;
Expand Down Expand Up @@ -336,7 +341,8 @@ static inline int ndev_spad_addr(struct intel_ntb_dev *ndev, int idx,
phys_addr_t *spad_addr, phys_addr_t reg_addr,
unsigned long reg)
{
WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD));
if (ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD))
pr_warn_once("%s: NTB unsafe scratchpad access", __func__);

if (idx < 0 || idx >= ndev->spad_count)
return -EINVAL;
Expand All @@ -352,7 +358,8 @@ static inline int ndev_spad_addr(struct intel_ntb_dev *ndev, int idx,
static inline u32 ndev_spad_read(struct intel_ntb_dev *ndev, int idx,
void __iomem *mmio)
{
WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD));
if (ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD))
pr_warn_once("%s: NTB unsafe scratchpad access", __func__);

if (idx < 0 || idx >= ndev->spad_count)
return 0;
Expand All @@ -363,7 +370,8 @@ static inline u32 ndev_spad_read(struct intel_ntb_dev *ndev, int idx,
static inline int ndev_spad_write(struct intel_ntb_dev *ndev, int idx, u32 val,
void __iomem *mmio)
{
WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD));
if (ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD))
pr_warn_once("%s: NTB unsafe scratchpad access", __func__);

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

0 comments on commit fd839bf

Please sign in to comment.