Lines Matching refs:pt

115 void nla_get_range_unsigned(const struct nla_policy *pt,  in nla_get_range_unsigned()  argument
118 WARN_ON_ONCE(pt->validation_type != NLA_VALIDATE_RANGE_PTR && in nla_get_range_unsigned()
119 (pt->min < 0 || pt->max < 0)); in nla_get_range_unsigned()
123 switch (pt->type) { in nla_get_range_unsigned()
145 switch (pt->validation_type) { in nla_get_range_unsigned()
148 range->min = pt->min; in nla_get_range_unsigned()
149 range->max = pt->max; in nla_get_range_unsigned()
152 *range = *pt->range; in nla_get_range_unsigned()
155 range->min = pt->min; in nla_get_range_unsigned()
158 range->max = pt->max; in nla_get_range_unsigned()
165 static int nla_validate_range_unsigned(const struct nla_policy *pt, in nla_validate_range_unsigned() argument
173 switch (pt->type) { in nla_validate_range_unsigned()
202 nla_get_range_unsigned(pt, &range); in nla_validate_range_unsigned()
204 if (pt->validation_type == NLA_VALIDATE_RANGE_WARN_TOO_LONG && in nla_validate_range_unsigned()
205 pt->type == NLA_BINARY && value > range.max) { in nla_validate_range_unsigned()
207 current->comm, pt->type); in nla_validate_range_unsigned()
209 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
219 bool binary = pt->type == NLA_BINARY; in nla_validate_range_unsigned()
222 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
225 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
234 void nla_get_range_signed(const struct nla_policy *pt, in nla_get_range_signed() argument
237 switch (pt->type) { in nla_get_range_signed()
259 switch (pt->validation_type) { in nla_get_range_signed()
261 range->min = pt->min; in nla_get_range_signed()
262 range->max = pt->max; in nla_get_range_signed()
265 *range = *pt->range_signed; in nla_get_range_signed()
268 range->min = pt->min; in nla_get_range_signed()
271 range->max = pt->max; in nla_get_range_signed()
278 static int nla_validate_int_range_signed(const struct nla_policy *pt, in nla_validate_int_range_signed() argument
285 switch (pt->type) { in nla_validate_int_range_signed()
302 nla_get_range_signed(pt, &range); in nla_validate_int_range_signed()
305 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_int_range_signed()
313 static int nla_validate_int_range(const struct nla_policy *pt, in nla_validate_int_range() argument
318 switch (pt->type) { in nla_validate_int_range()
327 return nla_validate_range_unsigned(pt, nla, extack, validate); in nla_validate_int_range()
332 return nla_validate_int_range_signed(pt, nla, extack); in nla_validate_int_range()
339 static int nla_validate_mask(const struct nla_policy *pt, in nla_validate_mask() argument
345 switch (pt->type) { in nla_validate_mask()
362 if (value & ~(u64)pt->mask) { in nla_validate_mask()
375 const struct nla_policy *pt; in validate_nla() local
386 pt = &policy[type]; in validate_nla()
388 BUG_ON(pt->type > NLA_TYPE_MAX); in validate_nla()
390 if (nla_attr_len[pt->type] && attrlen != nla_attr_len[pt->type]) { in validate_nla()
394 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
401 if ((pt->type == NLA_NESTED || pt->type == NLA_NESTED_ARRAY) && in validate_nla()
403 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
407 if (pt->type != NLA_NESTED && pt->type != NLA_NESTED_ARRAY && in validate_nla()
408 pt->type != NLA_UNSPEC && (nla->nla_type & NLA_F_NESTED)) { in validate_nla()
409 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
415 switch (pt->type) { in validate_nla()
417 if (extack && pt->reject_message) { in validate_nla()
419 extack->_msg = pt->reject_message; in validate_nla()
434 err = validate_nla_bitfield32(nla, pt->bitfield32_valid); in validate_nla()
440 if (pt->len) in validate_nla()
441 minlen = min_t(int, attrlen, pt->len + 1); in validate_nla()
455 if (pt->len) { in validate_nla()
461 if (attrlen > pt->len) in validate_nla()
467 if (pt->len && attrlen > pt->len) in validate_nla()
479 if (pt->nested_policy) { in validate_nla()
481 pt->len, pt->nested_policy, in validate_nla()
501 if (pt->nested_policy) { in validate_nla()
505 pt->len, pt->nested_policy, in validate_nla()
523 if (attrlen < pt->len) in validate_nla()
528 if (pt->len) in validate_nla()
529 minlen = pt->len; in validate_nla()
531 minlen = nla_attr_minlen[pt->type]; in validate_nla()
538 switch (pt->validation_type) { in validate_nla()
547 err = nla_validate_int_range(pt, nla, extack, validate); in validate_nla()
552 err = nla_validate_mask(pt, nla, extack); in validate_nla()
557 if (pt->validate) { in validate_nla()
558 err = pt->validate(nla, extack); in validate_nla()
567 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()