Messages in this thread Patch in this message | | | Subject | [PATCH 3/5] PCI: maintain backwards compatibility with aer-inject user-land tool | From | Andrew Patterson <> | Date | Mon, 12 Oct 2009 01:03:04 -0600 |
| |
PCI: maintain backwards compatibility with aer-inject user-land tool
Maintain backwards compatibility with the 0.1 version of the aer-inject user-land tool.
Signed-off-by: Andrew Patterson<andrew.patterson@hp.com> ---
diff --git a/drivers/pci/pcie/aer/aer_inject.c b/drivers/pci/pcie/aer/aer_inject.c index 5fc5b3e..ac0b5e7 100644 --- a/drivers/pci/pcie/aer/aer_inject.c +++ b/drivers/pci/pcie/aer/aer_inject.c @@ -23,10 +23,10 @@ #include <linux/pci.h> #include <linux/fs.h> #include <linux/uaccess.h> +#include <linux/stddef.h> #include "aerdrv.h" struct aer_error_inj { - u16 domain; u8 bus; u8 dev; u8 fn; @@ -36,6 +36,7 @@ struct aer_error_inj { u32 header_log1; u32 header_log2; u32 header_log3; + u16 domain; }; struct aer_error { @@ -431,10 +432,11 @@ static ssize_t aer_inject_write(struct file *filp, const char __user *ubuf, if (!capable(CAP_SYS_ADMIN)) return -EPERM; - - if (usize != sizeof(struct aer_error_inj)) + if (usize < offsetof(struct aer_error_inj, domain) || + usize > sizeof(einj)) return -EINVAL; + memset(&einj, 0, sizeof(einj)); if (copy_from_user(&einj, ubuf, usize)) return -EFAULT;
| |