Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

NTB: Change WARN_ON_ONCE to pr_warn_once on unsafe

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>

authored by

Dave Jiang and committed by
Jon Mason
fd839bf8 7eb38781

+16 -8
+16 -8
drivers/ntb/hw/intel/ntb_hw_intel.c
··· 246 246 phys_addr_t *db_addr, resource_size_t *db_size, 247 247 phys_addr_t reg_addr, unsigned long reg) 248 248 { 249 - WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB)); 249 + if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB)) 250 + pr_warn_once("%s: NTB unsafe doorbell access", __func__); 250 251 251 252 if (db_addr) { 252 253 *db_addr = reg_addr + reg; ··· 265 264 static inline u64 ndev_db_read(struct intel_ntb_dev *ndev, 266 265 void __iomem *mmio) 267 266 { 268 - WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB)); 267 + if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB)) 268 + pr_warn_once("%s: NTB unsafe doorbell access", __func__); 269 269 270 270 return ndev->reg->db_ioread(mmio); 271 271 } ··· 274 272 static inline int ndev_db_write(struct intel_ntb_dev *ndev, u64 db_bits, 275 273 void __iomem *mmio) 276 274 { 277 - WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB)); 275 + if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB)) 276 + pr_warn_once("%s: NTB unsafe doorbell access", __func__); 278 277 279 278 if (db_bits & ~ndev->db_valid_mask) 280 279 return -EINVAL; ··· 290 287 { 291 288 unsigned long irqflags; 292 289 293 - WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB)); 290 + if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB)) 291 + pr_warn_once("%s: NTB unsafe doorbell access", __func__); 294 292 295 293 if (db_bits & ~ndev->db_valid_mask) 296 294 return -EINVAL; ··· 311 307 { 312 308 unsigned long irqflags; 313 309 314 - WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_DB)); 310 + if (ndev_is_unsafe(ndev, NTB_UNSAFE_DB)) 311 + pr_warn_once("%s: NTB unsafe doorbell access", __func__); 315 312 316 313 if (db_bits & ~ndev->db_valid_mask) 317 314 return -EINVAL; ··· 341 336 phys_addr_t *spad_addr, phys_addr_t reg_addr, 342 337 unsigned long reg) 343 338 { 344 - WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD)); 339 + if (ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD)) 340 + pr_warn_once("%s: NTB unsafe scratchpad access", __func__); 345 341 346 342 if (idx < 0 || idx >= ndev->spad_count) 347 343 return -EINVAL; ··· 358 352 static inline u32 ndev_spad_read(struct intel_ntb_dev *ndev, int idx, 359 353 void __iomem *mmio) 360 354 { 361 - WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD)); 355 + if (ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD)) 356 + pr_warn_once("%s: NTB unsafe scratchpad access", __func__); 362 357 363 358 if (idx < 0 || idx >= ndev->spad_count) 364 359 return 0; ··· 370 363 static inline int ndev_spad_write(struct intel_ntb_dev *ndev, int idx, u32 val, 371 364 void __iomem *mmio) 372 365 { 373 - WARN_ON_ONCE(ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD)); 366 + if (ndev_is_unsafe(ndev, NTB_UNSAFE_SPAD)) 367 + pr_warn_once("%s: NTB unsafe scratchpad access", __func__); 374 368 375 369 if (idx < 0 || idx >= ndev->spad_count) 376 370 return -EINVAL;