mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 02:36:42 +07:00
Blackfin arch: set_dma_callback: do not store .irq
set_dma_callback: do not store .irq if request_irq() failed so we dont turn around and attempt to free_irq() it later on in free_dma() Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
This commit is contained in:
parent
9b011407d6
commit
8f1cc23388
@ -157,18 +157,16 @@ int set_dma_callback(unsigned int channel, irq_handler_t callback, void *data)
|
||||
&& channel < MAX_DMA_CHANNELS));
|
||||
|
||||
if (callback != NULL) {
|
||||
int ret_val;
|
||||
dma_ch[channel].irq = channel2irq(channel);
|
||||
dma_ch[channel].data = data;
|
||||
int ret;
|
||||
unsigned int irq = channel2irq(channel);
|
||||
|
||||
ret_val =
|
||||
request_irq(dma_ch[channel].irq, callback, IRQF_DISABLED,
|
||||
dma_ch[channel].device_id, data);
|
||||
if (ret_val) {
|
||||
printk(KERN_NOTICE
|
||||
"Request irq in DMA engine failed.\n");
|
||||
return -EPERM;
|
||||
}
|
||||
ret = request_irq(irq, callback, IRQF_DISABLED,
|
||||
dma_ch[channel].device_id, data);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
dma_ch[channel].irq = irq;
|
||||
dma_ch[channel].data = data;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user