diff
 static int remove_device_files(struct super_block *sb,
 			       struct qib_devdata *dd)
 {
 	struct dentry *dir;
 	char unit[10];
 
+	if (!sb || !sb->s_root)
+		return -EINVAL;
+
 	snprintf(unit, sizeof(unit), "%u", dd->unit);
 	dir = lookup_one_len_unlocked(unit, sb->s_root, strlen(unit));
