lbs_add_rtap(priv);
                }
                priv->monitormode = monitor_mode;
-       }
-
-       else {
+       } else {
                if (!priv->monitormode)
                        return strlen(buf);
                priv->monitormode = 0;
                lbs_pr_err("cannot register ethX device\n");
                goto done;
        }
-       if (device_create_file(&dev->dev, &dev_attr_lbs_rtap))
-               lbs_pr_err("cannot register lbs_rtap attribute\n");
 
        lbs_update_channel(priv);
 
 
                        if (device_create_file(&dev->dev, &dev_attr_lbs_mesh))
                                lbs_pr_err("cannot register lbs_mesh attribute\n");
+
+                       /* While rtap isn't related to mesh, only mesh-enabled
+                        * firmware implements the rtap functionality via
+                        * CMD_802_11_MONITOR_MODE.
+                        */
+                       if (device_create_file(&dev->dev, &dev_attr_lbs_rtap))
+                               lbs_pr_err("cannot register lbs_rtap attribute\n");
                }
        }
 
        netif_carrier_off(priv->dev);
 
        lbs_debugfs_remove_one(priv);
-       device_remove_file(&dev->dev, &dev_attr_lbs_rtap);
        if (priv->mesh_tlv) {
                device_remove_file(&dev->dev, &dev_attr_lbs_mesh);
+               device_remove_file(&dev->dev, &dev_attr_lbs_rtap);
        }
 
        /* Flush pending command nodes */