diff options
author | James Morris <jmorris@namei.org> | 2009-06-09 01:27:53 +0200 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2009-06-09 01:27:53 +0200 |
commit | 0b4ec6e4e01d98e55ae325a41304cccd87fa4c0f (patch) | |
tree | 1e075fdf4aaf0c5c003564b3f3414bb4a92ef2ed /drivers/parport | |
parent | integrity: ima audit dentry_open failure (diff) | |
parent | async: Fix lack of boot-time console due to insufficient synchronization (diff) | |
download | linux-0b4ec6e4e01d98e55ae325a41304cccd87fa4c0f.tar.xz linux-0b4ec6e4e01d98e55ae325a41304cccd87fa4c0f.zip |
Merge branch 'master' into next
Diffstat (limited to 'drivers/parport')
-rw-r--r-- | drivers/parport/parport_gsc.c | 4 | ||||
-rw-r--r-- | drivers/parport/share.c | 13 |
2 files changed, 12 insertions, 5 deletions
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c index e6a7e847ee80..ea31a452b153 100644 --- a/drivers/parport/parport_gsc.c +++ b/drivers/parport/parport_gsc.c @@ -352,8 +352,8 @@ static int __devinit parport_init_chip(struct parisc_device *dev) unsigned long port; if (!dev->irq) { - printk(KERN_WARNING "IRQ not found for parallel device at 0x%lx\n", - dev->hpa.start); + printk(KERN_WARNING "IRQ not found for parallel device at 0x%llx\n", + (unsigned long long)dev->hpa.start); return -ENODEV; } diff --git a/drivers/parport/share.c b/drivers/parport/share.c index 0ebca450ed29..dffa5d4fb298 100644 --- a/drivers/parport/share.c +++ b/drivers/parport/share.c @@ -614,7 +614,10 @@ parport_register_device(struct parport *port, const char *name, * pardevice fields. -arca */ port->ops->init_state(tmp, tmp->state); - parport_device_proc_register(tmp); + if (!test_and_set_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags)) { + port->proc_device = tmp; + parport_device_proc_register(tmp); + } return tmp; out_free_all: @@ -646,10 +649,14 @@ void parport_unregister_device(struct pardevice *dev) } #endif - parport_device_proc_unregister(dev); - port = dev->port->physport; + if (port->proc_device == dev) { + port->proc_device = NULL; + clear_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags); + parport_device_proc_unregister(dev); + } + if (port->cad == dev) { printk(KERN_DEBUG "%s: %s forgot to release port\n", port->name, dev->name); |