[PATCH] PCMCIA: handle sysfs, PCI errors

Handle sysfs and PCI errors correctly.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
这个提交包含在:
Jeff Garzik
2006-10-20 14:44:23 -07:00
提交者 Dominik Brodowski
父节点 26aaa3c202
当前提交 4deb7c1ed2
修改 2 个文件,包含 21 行新增6 行删除

查看文件

@@ -1197,8 +1197,12 @@ static int __devinit yenta_probe (struct pci_dev *dev, const struct pci_device_i
ret = pcmcia_register_socket(&socket->socket);
if (ret == 0) {
/* Add the yenta register attributes */
device_create_file(&dev->dev, &dev_attr_yenta_registers);
goto out;
ret = device_create_file(&dev->dev, &dev_attr_yenta_registers);
if (ret == 0)
goto out;
/* error path... */
pcmcia_unregister_socket(&socket->socket);
}
unmap:
@@ -1248,12 +1252,18 @@ static int yenta_dev_resume (struct pci_dev *dev)
struct yenta_socket *socket = pci_get_drvdata(dev);
if (socket) {
int rc;
pci_set_power_state(dev, 0);
/* FIXME: pci_restore_state needs to have a better interface */
pci_restore_state(dev);
pci_write_config_dword(dev, 16*4, socket->saved_state[0]);
pci_write_config_dword(dev, 17*4, socket->saved_state[1]);
pci_enable_device(dev);
rc = pci_enable_device(dev);
if (rc)
return rc;
pci_set_master(dev);
if (socket->type && socket->type->restore_state)