History

qed: introduce qed_chain_get_elem_used{,u32}()

Add reverse-variants of qed_chain_get_elem_left{,u32}() to be able to know current chain occupation. They will be used in the upcoming qede XDP_REDIRECT code. They share most of the logics with the mentioned ones, so were reused to collapse the latters.

Alexander Lobakin committed 6 years ago

Commit be0cec61 parent f2aefd21 file · +14 −4Browse files

Showing the changes to include/linux (1 of 1 file). Show all

Unified · Split

include/linux/qed/qed_chain.h+14−4
@@ -203,7 +203,7 @@ static inline u32 qed_chain_get_cons_idx_u32(const struct qed_chain *chain) · 202 unmodified lines
203203 return chain->u.chain32.cons_idx;
204204 }
205205
206−static inline u16 qed_chain_get_elem_left(const struct qed_chain *chain)
206+static inline u16 qed_chain_get_elem_used(const struct qed_chain *chain)
207207 {
208208 u32 prod = qed_chain_get_prod_idx(chain);
209209 u32 cons = qed_chain_get_cons_idx(chain);
@@ -217,10 +217,15 @@ static inline u16 qed_chain_get_elem_left(const struct qed_chain *chain) · 7 unmodified lines
217217 if (chain->mode == QED_CHAIN_MODE_NEXT_PTR)
218218 used -= (u16)(prod / elem_per_page - cons / elem_per_page);
219219
220− return (u16)(chain->capacity - used);
220+ return used;
221221 }
222222
223−static inline u32 qed_chain_get_elem_left_u32(const struct qed_chain *chain)
223+static inline u16 qed_chain_get_elem_left(const struct qed_chain *chain)
224+{
225+ return (u16)(chain->capacity - qed_chain_get_elem_used(chain));
226+}
227+
228+static inline u32 qed_chain_get_elem_used_u32(const struct qed_chain *chain)
224229 {
225230 u64 prod = qed_chain_get_prod_idx_u32(chain);
226231 u64 cons = qed_chain_get_cons_idx_u32(chain);
@@ -234,7 +239,12 @@ static inline u32 qed_chain_get_elem_left_u32(const struct qed_chain *chain) · 7 unmodified lines
234239 if (chain->mode == QED_CHAIN_MODE_NEXT_PTR)
235240 used -= (u32)(prod / elem_per_page - cons / elem_per_page);
236241
237− return chain->capacity - used;
242+ return used;
243+}
244+
245+static inline u32 qed_chain_get_elem_left_u32(const struct qed_chain *chain)
246+{
247+ return chain->capacity - qed_chain_get_elem_used_u32(chain);
238248 }
239249
240250 static inline u16 qed_chain_get_usable_per_page(const struct qed_chain *chain)