atm: [he] limit queries to the device's register space
From: "Robert T. Johnson" <rtjohnso@eecs.berkeley.edu> Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
This commit is contained in:
committed by
David S. Miller
parent
7e903c2ae3
commit
28e84ab3ab
@@ -2845,10 +2845,15 @@ he_ioctl(struct atm_dev *atm_dev, unsigned int cmd, void __user *arg)
|
|||||||
if (copy_from_user(®, arg,
|
if (copy_from_user(®, arg,
|
||||||
sizeof(struct he_ioctl_reg)))
|
sizeof(struct he_ioctl_reg)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
spin_lock_irqsave(&he_dev->global_lock, flags);
|
spin_lock_irqsave(&he_dev->global_lock, flags);
|
||||||
switch (reg.type) {
|
switch (reg.type) {
|
||||||
case HE_REGTYPE_PCI:
|
case HE_REGTYPE_PCI:
|
||||||
|
if (reg.addr < 0 || reg.addr >= HE_REGMAP_SIZE) {
|
||||||
|
err = -EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
reg.val = he_readl(he_dev, reg.addr);
|
reg.val = he_readl(he_dev, reg.addr);
|
||||||
break;
|
break;
|
||||||
case HE_REGTYPE_RCM:
|
case HE_REGTYPE_RCM:
|
||||||
|
Reference in New Issue
Block a user