diff options
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_sysfs.c')
-rw-r--r-- | drivers/infiniband/hw/qib/qib_sysfs.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/qib/qib_sysfs.c b/drivers/infiniband/hw/qib/qib_sysfs.c index dae51604cfcd..dd9cd49d0979 100644 --- a/drivers/infiniband/hw/qib/qib_sysfs.c +++ b/drivers/infiniband/hw/qib/qib_sysfs.c | |||
@@ -503,8 +503,11 @@ static ssize_t show_nctxts(struct device *device, | |||
503 | struct qib_devdata *dd = dd_from_dev(dev); | 503 | struct qib_devdata *dd = dd_from_dev(dev); |
504 | 504 | ||
505 | /* Return the number of user ports (contexts) available. */ | 505 | /* Return the number of user ports (contexts) available. */ |
506 | return scnprintf(buf, PAGE_SIZE, "%u\n", dd->cfgctxts - | 506 | /* The calculation below deals with a special case where |
507 | dd->first_user_ctxt); | 507 | * cfgctxts is set to 1 on a single-port board. */ |
508 | return scnprintf(buf, PAGE_SIZE, "%u\n", | ||
509 | (dd->first_user_ctxt > dd->cfgctxts) ? 0 : | ||
510 | (dd->cfgctxts - dd->first_user_ctxt)); | ||
508 | } | 511 | } |
509 | 512 | ||
510 | static ssize_t show_nfreectxts(struct device *device, | 513 | static ssize_t show_nfreectxts(struct device *device, |