linux启动之scsi和ata的初始化

static int __init init_scsi(void){ int error; error = scsi_init_queue(); if (error) return error; error = scsi_init_procfs(); if (error) goto cleanup_queue; error = scsi_init_devinfo(); if (error) goto cleanup_procfs; error = scsi_init_hosts(); if (error) goto cleanup_devlist; error = scsi_init_sysctl(); if (error) goto cleanup_hosts; error = scsi_sysfs_register(); if (error) goto cleanup_sysctl; scsi_netlink_init(); printk(KERN_NOTICE "SCSI subsystem initialized\n"); return 0;cleanup_sysctl: scsi_exit_sysctl();cleanup_hosts: scsi_exit_hosts();cleanup_devlist: scsi_exit_devinfo();cleanup_procfs: scsi_exit_procfs();cleanup_queue: scsi_exit_queue(); printk(KERN_ERR "SCSI subsystem failed to initialize, error = %d\n", -error); return error;}

[ 0.260628] SCSI subsystem initialized[ 0.260660] libata version 3.00 loaded.

ata/libata-core.c

static int __init ata_init(void)

{ int rc; ata_parse_force_param(); rc = ata_sff_init(); if (rc) { kfree(ata_force_tbl); return rc; } libata_transport_init(); ata_scsi_transport_template = ata_attach_transport(); if (!ata_scsi_transport_template) { ata_sff_exit(); rc = -ENOMEM; goto err_out; } printk(KERN_DEBUG "libata version " DRV_VERSION " loaded.\n"); return 0;err_out: return rc;}在泪水中浸泡过的微笑最灿烂,从迷惘中走出来的灵魂最清醒。

linux启动之scsi和ata的初始化

相关文章:

你感兴趣的文章:

标签云: