result = ibmasm_event_buffer_init(sp); if (result) {
dev_err(sp->dev, "Failed to allocate event buffer\n"); goto error_eventbuffer;
}
result = ibmasm_heartbeat_init(sp); if (result) {
dev_err(sp->dev, "Failed to allocate heartbeat command\n"); goto error_heartbeat;
}
sp->irq = pdev->irq;
sp->base_address = pci_ioremap_bar(pdev, 0); if (!sp->base_address) {
dev_err(sp->dev, "Failed to ioremap pci memory\n");
result = -ENODEV; goto error_ioremap;
}
result = request_irq(sp->irq, ibmasm_interrupt_handler, IRQF_SHARED, sp->devname, (void*)sp); if (result) {
dev_err(sp->dev, "Failed to register interrupt handler\n"); goto error_request_irq;
}
enable_sp_interrupts(sp->base_address);
result = ibmasm_init_remote_input_dev(sp); if (result) {
dev_err(sp->dev, "Failed to initialize remote queue\n"); goto error_init_remote;
}
result = ibmasm_send_driver_vpd(sp); if (result) {
dev_err(sp->dev, "Failed to send driver VPD to service processor\n"); goto error_send_message;
}
result = ibmasm_send_os_state(sp, SYSTEM_STATE_OS_UP); if (result) {
dev_err(sp->dev, "Failed to send OS state to service processor\n"); goto error_send_message;
}
ibmasmfs_add_sp(sp);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.