summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/devfs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/devfs.c b/fs/devfs.c
index 6cf8920cb8..3a90603e54 100644
--- a/fs/devfs.c
+++ b/fs/devfs.c
@@ -54,7 +54,7 @@ struct dirent* devfs_readdir(struct device_d *_dev, struct dir *dir)
{
struct device_d *dev = dir->priv;
- while (dev && !strlen(dev->id))
+ while (dev && (!strlen(dev->id) || !dev->driver))
dev = dev->next;
if (dev) {
@@ -79,6 +79,9 @@ int devfs_stat(struct device_d *_dev, const char *filename, struct stat *s)
if (!dev)
return -ENOENT;
+ if (!dev->driver)
+ return -ENXIO;
+
s->st_mode = S_IFCHR;
s->st_size = dev->size;
if (dev->driver->write)