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;
 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;
 {
        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;
 {
        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;
                                 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;
 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;
 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;