#define BT_DBG(fmt, ...)       pr_debug(fmt "\n", ##__VA_ARGS__)
 #endif
 
+#define bt_dev_name(hdev) ((hdev) ? (hdev)->name : "null")
+
 #define bt_dev_info(hdev, fmt, ...)                            \
-       BT_INFO("%s: " fmt, (hdev)->name, ##__VA_ARGS__)
+       BT_INFO("%s: " fmt, bt_dev_name(hdev), ##__VA_ARGS__)
 #define bt_dev_warn(hdev, fmt, ...)                            \
-       BT_WARN("%s: " fmt, (hdev)->name, ##__VA_ARGS__)
+       BT_WARN("%s: " fmt, bt_dev_name(hdev), ##__VA_ARGS__)
 #define bt_dev_err(hdev, fmt, ...)                             \
-       BT_ERR("%s: " fmt, (hdev)->name, ##__VA_ARGS__)
+       BT_ERR("%s: " fmt, bt_dev_name(hdev), ##__VA_ARGS__)
 #define bt_dev_dbg(hdev, fmt, ...)                             \
-       BT_DBG("%s: " fmt, (hdev)->name, ##__VA_ARGS__)
+       BT_DBG("%s: " fmt, bt_dev_name(hdev), ##__VA_ARGS__)
 
 #define bt_dev_warn_ratelimited(hdev, fmt, ...)                        \
-       bt_warn_ratelimited("%s: " fmt, (hdev)->name, ##__VA_ARGS__)
+       bt_warn_ratelimited("%s: " fmt, bt_dev_name(hdev), ##__VA_ARGS__)
 #define bt_dev_err_ratelimited(hdev, fmt, ...)                 \
-       bt_err_ratelimited("%s: " fmt, (hdev)->name, ##__VA_ARGS__)
+       bt_err_ratelimited("%s: " fmt, bt_dev_name(hdev), ##__VA_ARGS__)
 
 /* Connection and socket states */
 enum {