summaryrefslogtreecommitdiffstats
path: root/fs/devfs.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-07-05 18:01:44 +0200
committerSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-07-05 18:01:44 +0200
commit96b3a924540baa38372ac4c5747ebf30124d4b00 (patch)
treed85003c8ba7c149eec7cc9c58b0ff2874e1f51b0 /fs/devfs.c
parent9da2b07349c5c2b8287fb8cc3647295827879d01 (diff)
downloadbarebox-96b3a924540baa38372ac4c5747ebf30124d4b00.tar.gz
barebox-96b3a924540baa38372ac4c5747ebf30124d4b00.tar.xz
svn_rev_337
Diffstat (limited to 'fs/devfs.c')
-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)