From: Juergen Gross Date: Wed, 23 Aug 2017 17:38:00 +0000 (+0200) Subject: xen/drivers/passthrough/vtd/quirks.c: let custom parameter parsing routines return... X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~1570 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e3f37b33e7980dfa66e45b6d0f7b56ffe1226cd4;p=xen.git xen/drivers/passthrough/vtd/quirks.c: let custom parameter parsing routines return errno Modify the custom parameter parsing routines in: xen/drivers/passthrough/vtd/quirks.c to indicate whether the parameter value was parsed successfully. Signed-off-by: Juergen Gross Acked-by: Wei Liu Acked-by: Kevin Tian --- diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c index d6dd671dbf..d6db862678 100644 --- a/xen/drivers/passthrough/vtd/quirks.c +++ b/xen/drivers/passthrough/vtd/quirks.c @@ -247,9 +247,10 @@ void vtd_ops_postamble_quirk(struct iommu* iommu) } } -static void __init parse_snb_timeout(const char *s) +static int __init parse_snb_timeout(const char *s) { int t; + const char *q = NULL; t = parse_bool(s, NULL); if ( t < 0 ) @@ -259,13 +260,13 @@ static void __init parse_snb_timeout(const char *s) else if ( strcmp(s, "cap") == 0 ) t = SNB_IGD_TIMEOUT; else - t = strtoul(s, NULL, 0); + t = strtoul(s, &q, 0); } else t = t ? SNB_IGD_TIMEOUT_LEGACY : 0; snb_igd_timeout = MILLISECS(t); - return; + return (q && *q) ? -EINVAL : 0; } custom_param("snb_igd_quirk", parse_snb_timeout);