[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1450427719-29619-1-git-send-email-hare@suse.de>
Date: Fri, 18 Dec 2015 09:35:17 +0100
From: Hannes Reinecke <hare@...e.de>
To: Bjorn Helgaas <bhelgaas@...gle.com>
Cc: Alexander Duyck <alexander.duyck@...il.com>,
Michal Kubecek <mkubecek@...e.com>,
"Shane M. Seymour" <shane.seymour@....com>,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
Hannes Reinecke <hare@...e.de>
Subject: [PATCHv4 0/2] PCI: Safe VPD access
PCI VPD suffers from two problems: it has a very rudimentary interface
and it relies on correctly formatted data. And essentially it provides
a direct channel into the card hardware. In other words, plenty of
chances to mess things up.
With the original implementation we would just read the VPD space,
blissfully ignorant of the data formatting of the VPD data. This
would work if the VPD space happens to be properly implemented.
However, I've had several reports where a simple 'cat' on the vpd
attribute would return garbage (if you're lucky), trigger a timeout
with a kernel warning (which actually triggered this patchset), or
hang your machine (if you're really unlucky).
So this patchset validates the VPD data, setting the VPD attribute to
the correct size or disabling VPD access altogether if no valid data
is found.
Changes to v3:
- Do not calculate size for pci function devices
- Do not disable the attribute on error
- move size calculation into the pci_vpd_ops structure
Hannes Reinecke (2):
pci: Update VPD definitions
pci: Update VPD size with correct length
drivers/pci/access.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/pci/pci.h | 1 +
include/linux/pci.h | 27 ++++++++++++++++--
3 files changed, 107 insertions(+), 2 deletions(-)
--
1.8.5.6
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists