svn commit: r301542 - head/sys/dev/cxgbe
Navdeep Parhar
np at FreeBSD.org
Tue Jun 7 07:48:37 UTC 2016
Author: np
Date: Tue Jun 7 07:48:36 2016
New Revision: 301542
URL: https://svnweb.freebsd.org/changeset/base/301542
Log:
cxgbe(4): A couple of fixes to set_sched_queue.
- Validate the scheduling class against the actual limit (which is chip
specific) instead of a magic number.
- Return an error if an attempt is made to manipulate the tx queues of a
VI that hasn't been initialized.
Sponsored by: Chelsio Communications
Modified:
head/sys/dev/cxgbe/t4_main.c
Modified: head/sys/dev/cxgbe/t4_main.c
==============================================================================
--- head/sys/dev/cxgbe/t4_main.c Tue Jun 7 07:04:05 2016 (r301541)
+++ head/sys/dev/cxgbe/t4_main.c Tue Jun 7 07:48:36 2016 (r301542)
@@ -8575,11 +8575,6 @@ set_sched_queue(struct adapter *sc, stru
if (rc)
return (rc);
- if (!(sc->flags & FULL_INIT_DONE)) {
- rc = EAGAIN;
- goto done;
- }
-
if (p->port >= sc->params.nports) {
rc = EINVAL;
goto done;
@@ -8588,7 +8583,14 @@ set_sched_queue(struct adapter *sc, stru
/* XXX: Only supported for the main VI. */
pi = sc->port[p->port];
vi = &pi->vi[0];
- if (!in_range(p->queue, 0, vi->ntxq - 1) || !in_range(p->cl, 0, 7)) {
+ if (!(vi->flags & VI_INIT_DONE)) {
+ /* tx queues not set up yet */
+ rc = EAGAIN;
+ goto done;
+ }
+
+ if (!in_range(p->queue, 0, vi->ntxq - 1) ||
+ !in_range(p->cl, 0, sc->chip_params->nsched_cls - 1)) {
rc = EINVAL;
goto done;
}
More information about the svn-src-head
mailing list