Merge branch 'pci/controller/switchtec'
- Return -EFAULT instead of unrelated codes for copy_to_user() errors (Bjorn Helgaas) * pci/controller/switchtec: PCI: switchtec: Return -EFAULT for copy_to_user() errors PCI: switchtec: Simplify switchtec_dma_mrpc_isr()
This commit is contained in:
@ -606,21 +606,20 @@ static ssize_t switchtec_dev_read(struct file *filp, char __user *data,
|
||||
rc = copy_to_user(data, &stuser->return_code,
|
||||
sizeof(stuser->return_code));
|
||||
if (rc) {
|
||||
rc = -EFAULT;
|
||||
goto out;
|
||||
mutex_unlock(&stdev->mrpc_mutex);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
data += sizeof(stuser->return_code);
|
||||
rc = copy_to_user(data, &stuser->data,
|
||||
size - sizeof(stuser->return_code));
|
||||
if (rc) {
|
||||
rc = -EFAULT;
|
||||
goto out;
|
||||
mutex_unlock(&stdev->mrpc_mutex);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
stuser_set_state(stuser, MRPC_IDLE);
|
||||
|
||||
out:
|
||||
mutex_unlock(&stdev->mrpc_mutex);
|
||||
|
||||
if (stuser->status == SWITCHTEC_MRPC_STATUS_DONE ||
|
||||
@ -1480,15 +1479,13 @@ static irqreturn_t switchtec_event_isr(int irq, void *dev)
|
||||
static irqreturn_t switchtec_dma_mrpc_isr(int irq, void *dev)
|
||||
{
|
||||
struct switchtec_dev *stdev = dev;
|
||||
irqreturn_t ret = IRQ_NONE;
|
||||
|
||||
iowrite32(SWITCHTEC_EVENT_CLEAR |
|
||||
SWITCHTEC_EVENT_EN_IRQ,
|
||||
&stdev->mmio_part_cfg->mrpc_comp_hdr);
|
||||
schedule_work(&stdev->mrpc_work);
|
||||
|
||||
ret = IRQ_HANDLED;
|
||||
return ret;
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static int switchtec_init_isr(struct switchtec_dev *stdev)
|
||||
|
Reference in New Issue
Block a user