From: Keir Fraser Date: Thu, 25 Mar 2010 10:00:03 +0000 (+0000) Subject: pci: fix PCI resource reservation option parsing X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=570a79a9a8516e836cbe0d565f2cf23773539875;p=legacy%2Flinux-2.6.18-xen.git pci: fix PCI resource reservation option parsing Start looking for the second '+' after the first one (rather than at the beginning again). Also fail if second string cannot be parsed. Signed-off-by: Jan Beulich --- diff --git a/drivers/pci/reserve.c b/drivers/pci/reserve.c index af299c76..e3cc9aed 100644 --- a/drivers/pci/reserve.c +++ b/drivers/pci/reserve.c @@ -64,16 +64,11 @@ static int pci_reserve_parse_one(const char *str, p = strchr(str, '+'); if (p == NULL) return -EINVAL; - p++; - if (pci_reserve_parse_size(p, io_size, mem_size)) + if (pci_reserve_parse_size(++p, io_size, mem_size)) return -EINVAL; - p = strchr(str, '+'); - if (p != NULL) { - p++; - pci_reserve_parse_size(p, io_size, mem_size); - } - return 0; + p = strchr(p, '+'); + return p ? pci_reserve_parse_size(p + 1, io_size, mem_size) : 0; } static unsigned long pci_reserve_size(struct pci_bus *pbus, int flags)