> >> The existing code is inconsistent in reporting and accepting the
> >> combined channel count. bnxt_get_channels() reports maximum combined
> >> as the maximum rx count. bnxt_set_channels() accepts combined count
> >> that cannot be bigger than max rx or max tx.
> >> For example, if max rx = 2 and max tx = 1, we report max supported
> >> combined to be 2. But if the user tries to set combined to 2, it
> >> will fail because 2 is bigger than max tx which is 1.
> >> Fix the code to be consistent. Max allowed combined = max(max_rx,
> >> We will accept a combined channel count <= max(max_rx, max_tx).
> > Don't you mean the 'max allowed combined = min(max_rx, max_tx)'.
> > How does using 'max' change the faulty scenario you've described?
> I'm fixing the inconsistency described in the first 2 paragraphs. The driver
> allows a combined ring to be rx or tx only. In the above example, we allow
> combined to be set to 2. The 2nd combined ring supports rx only.
Then what makes it a combined channel?
Sounds to me like in the above scenario you should have claimed support for:
- max rx == 2
- max tx == 1
- max combined == 1