int ps3_free_event_irq(unsigned int virq) { int result; pr_debug(" -> %s:%d\n", __func__, __LINE__); result = lv1_destruct_event_receive_port(virq_to_hw(virq)); if (result) pr_debug("%s:%d: lv1_destruct_event_receive_port failed: %s\n", __func__, __LINE__, ps3_result(result)); irq_dispose_mapping(virq); pr_debug(" <- %s:%d\n", __func__, __LINE__); return result; }
int ps3_event_receive_port_destroy(unsigned int virq) { int result; pr_debug(" -> %s:%d virq %u\n", __func__, __LINE__, virq); ps3_chip_mask(irq_get_irq_data(virq)); result = lv1_destruct_event_receive_port(virq_to_hw(virq)); if (result) pr_debug("%s:%d: lv1_destruct_event_receive_port failed: %s\n", __func__, __LINE__, ps3_result(result)); /* * Don't call ps3_virq_destroy() here since ps3_smp_cleanup_cpu() * calls from interrupt context (smp_call_function) when kexecing. */ pr_debug(" <- %s:%d\n", __func__, __LINE__); return result; }
int ps3_event_receive_port_destroy(unsigned int virq) { int result; pr_debug(" -> %s:%d virq: %u\n", __func__, __LINE__, virq); result = lv1_destruct_event_receive_port(virq_to_hw(virq)); if (result) pr_debug("%s:%d: lv1_destruct_event_receive_port failed: %s\n", __func__, __LINE__, ps3_result(result)); /* lv1_destruct_event_receive_port() destroys the IRQ plug, * so don't call ps3_irq_plug_destroy() here. */ result = ps3_virq_destroy(virq); BUG_ON(result); pr_debug(" <- %s:%d\n", __func__, __LINE__); return result; }
int ps3_event_receive_port_destroy(unsigned int virq) { int result; DBG(" -> %s:%d virq %u\n", __func__, __LINE__, virq); ps3_chip_mask(irq_get_irq_data(virq)); result = lv1_destruct_event_receive_port(virq_to_hw(virq)); if (result) FAIL("%s:%d: lv1_destruct_event_receive_port failed: %s\n", __func__, __LINE__, ps3_result(result)); /* */ DBG(" <- %s:%d\n", __func__, __LINE__); return result; }