*** spurs_driver.c.org 2009-09-10 10:28:51.000000000 +0900 --- spurs_driver.c 2009-11-03 21:52:00.000000000 +0900 *************** *** 1215,1226 **** dev->mbox_flag = 0; dev->mbox_isr_flag = 0; ! class_dev = class_device_create(spurs_class, NULL, dev->dev_id, &dev->pci_dev->dev, "%s%d", SPD_DRIVER_NAME, MINOR(dev->dev_id)); if (IS_ERR(class_dev)) { status = PTR_ERR(class_dev); ! spd_err(dev, "class_device_create() failed(%d)\n", status); goto fail; } dev->class_dev = class_dev; --- 1215,1228 ---- dev->mbox_flag = 0; dev->mbox_isr_flag = 0; ! /* Fixed by T.Nagai 2009/11/02 */ ! class_dev = device_create_drvdata(spurs_class, NULL, dev->dev_id, &dev->pci_dev->dev, "%s%d", SPD_DRIVER_NAME, MINOR(dev->dev_id)); if (IS_ERR(class_dev)) { status = PTR_ERR(class_dev); ! /* Fixed by T.Nagai 2009/11/02 */ ! spd_err(dev, "device_create_drvdata() failed(%d)\n", status); goto fail; } dev->class_dev = class_dev; *************** *** 1267,1273 **** spurs_stop_scp(dev); dev->dev_state.fw_state = SPD_FW_STATE_HALTED; } ! class_device_destroy(spurs_class, dev->dev_id); flush_workqueue(dev->work_queue); destroy_workqueue(dev->work_queue); tasklet_kill(&dev->tasklet); --- 1269,1276 ---- spurs_stop_scp(dev); dev->dev_state.fw_state = SPD_FW_STATE_HALTED; } ! /* Fixed by T.Nagai 2009/11/02 */ ! device_destroy(spurs_class, dev->dev_id); flush_workqueue(dev->work_queue); destroy_workqueue(dev->work_queue); tasklet_kill(&dev->tasklet);