Lines Matching refs:pt

114 void nla_get_range_unsigned(const struct nla_policy *pt,  in nla_get_range_unsigned()  argument
117 WARN_ON_ONCE(pt->validation_type != NLA_VALIDATE_RANGE_PTR && in nla_get_range_unsigned()
118 (pt->min < 0 || pt->max < 0)); in nla_get_range_unsigned()
122 switch (pt->type) { in nla_get_range_unsigned()
144 switch (pt->validation_type) { in nla_get_range_unsigned()
147 range->min = pt->min; in nla_get_range_unsigned()
148 range->max = pt->max; in nla_get_range_unsigned()
151 *range = *pt->range; in nla_get_range_unsigned()
154 range->min = pt->min; in nla_get_range_unsigned()
157 range->max = pt->max; in nla_get_range_unsigned()
164 static int nla_validate_range_unsigned(const struct nla_policy *pt, in nla_validate_range_unsigned() argument
172 switch (pt->type) { in nla_validate_range_unsigned()
201 nla_get_range_unsigned(pt, &range); in nla_validate_range_unsigned()
203 if (pt->validation_type == NLA_VALIDATE_RANGE_WARN_TOO_LONG && in nla_validate_range_unsigned()
204 pt->type == NLA_BINARY && value > range.max) { in nla_validate_range_unsigned()
206 current->comm, pt->type); in nla_validate_range_unsigned()
208 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
218 bool binary = pt->type == NLA_BINARY; in nla_validate_range_unsigned()
221 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
224 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_range_unsigned()
233 void nla_get_range_signed(const struct nla_policy *pt, in nla_get_range_signed() argument
236 switch (pt->type) { in nla_get_range_signed()
258 switch (pt->validation_type) { in nla_get_range_signed()
260 range->min = pt->min; in nla_get_range_signed()
261 range->max = pt->max; in nla_get_range_signed()
264 *range = *pt->range_signed; in nla_get_range_signed()
267 range->min = pt->min; in nla_get_range_signed()
270 range->max = pt->max; in nla_get_range_signed()
277 static int nla_validate_int_range_signed(const struct nla_policy *pt, in nla_validate_int_range_signed() argument
284 switch (pt->type) { in nla_validate_int_range_signed()
301 nla_get_range_signed(pt, &range); in nla_validate_int_range_signed()
304 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in nla_validate_int_range_signed()
312 static int nla_validate_int_range(const struct nla_policy *pt, in nla_validate_int_range() argument
317 switch (pt->type) { in nla_validate_int_range()
326 return nla_validate_range_unsigned(pt, nla, extack, validate); in nla_validate_int_range()
331 return nla_validate_int_range_signed(pt, nla, extack); in nla_validate_int_range()
338 static int nla_validate_mask(const struct nla_policy *pt, in nla_validate_mask() argument
344 switch (pt->type) { in nla_validate_mask()
361 if (value & ~(u64)pt->mask) { in nla_validate_mask()
374 const struct nla_policy *pt; in validate_nla() local
384 pt = &policy[type]; in validate_nla()
386 BUG_ON(pt->type > NLA_TYPE_MAX); in validate_nla()
388 if (nla_attr_len[pt->type] && attrlen != nla_attr_len[pt->type]) { in validate_nla()
392 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
399 if ((pt->type == NLA_NESTED || pt->type == NLA_NESTED_ARRAY) && in validate_nla()
401 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
405 if (pt->type != NLA_NESTED && pt->type != NLA_NESTED_ARRAY && in validate_nla()
406 pt->type != NLA_UNSPEC && (nla->nla_type & NLA_F_NESTED)) { in validate_nla()
407 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()
413 switch (pt->type) { in validate_nla()
415 if (extack && pt->reject_message) { in validate_nla()
417 extack->_msg = pt->reject_message; in validate_nla()
432 err = validate_nla_bitfield32(nla, pt->bitfield32_valid); in validate_nla()
438 if (pt->len) in validate_nla()
439 minlen = min_t(int, attrlen, pt->len + 1); in validate_nla()
453 if (pt->len) { in validate_nla()
459 if (attrlen > pt->len) in validate_nla()
465 if (pt->len && attrlen > pt->len) in validate_nla()
477 if (pt->nested_policy) { in validate_nla()
479 pt->len, pt->nested_policy, in validate_nla()
499 if (pt->nested_policy) { in validate_nla()
503 pt->len, pt->nested_policy, in validate_nla()
521 if (attrlen < pt->len) in validate_nla()
526 if (pt->len) in validate_nla()
527 minlen = pt->len; in validate_nla()
529 minlen = nla_attr_minlen[pt->type]; in validate_nla()
536 switch (pt->validation_type) { in validate_nla()
545 err = nla_validate_int_range(pt, nla, extack, validate); in validate_nla()
550 err = nla_validate_mask(pt, nla, extack); in validate_nla()
555 if (pt->validate) { in validate_nla()
556 err = pt->validate(nla, extack); in validate_nla()
565 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt, in validate_nla()