Lines Matching refs:pt

115 void nla_get_range_unsigned(const struct nla_policy *pt,
118 WARN_ON_ONCE(pt->validation_type != NLA_VALIDATE_RANGE_PTR &&
119 (pt->min < 0 || pt->max < 0));
123 switch (pt->type) {
143 switch (pt->validation_type) {
146 range->min = pt->min;
147 range->max = pt->max;
150 *range = *pt->range;
153 range->min = pt->min;
156 range->max = pt->max;
163 static int nla_validate_range_unsigned(const struct nla_policy *pt,
171 switch (pt->type) {
192 nla_get_range_unsigned(pt, &range);
194 if (pt->validation_type == NLA_VALIDATE_RANGE_WARN_TOO_LONG &&
195 pt->type == NLA_BINARY && value > range.max) {
197 current->comm, pt->type);
199 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
209 bool binary = pt->type == NLA_BINARY;
212 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
215 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
224 void nla_get_range_signed(const struct nla_policy *pt,
227 switch (pt->type) {
249 switch (pt->validation_type) {
251 range->min = pt->min;
252 range->max = pt->max;
255 *range = *pt->range_signed;
258 range->min = pt->min;
261 range->max = pt->max;
268 static int nla_validate_int_range_signed(const struct nla_policy *pt,
275 switch (pt->type) {
292 nla_get_range_signed(pt, &range);
295 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
303 static int nla_validate_int_range(const struct nla_policy *pt,
308 switch (pt->type) {
315 return nla_validate_range_unsigned(pt, nla, extack, validate);
320 return nla_validate_int_range_signed(pt, nla, extack);
327 static int nla_validate_mask(const struct nla_policy *pt,
333 switch (pt->type) {
350 if (value & ~(u64)pt->mask) {
363 const struct nla_policy *pt;
374 pt = &policy[type];
376 BUG_ON(pt->type > NLA_TYPE_MAX);
378 if (nla_attr_len[pt->type] && attrlen != nla_attr_len[pt->type]) {
382 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
389 if ((pt->type == NLA_NESTED || pt->type == NLA_NESTED_ARRAY) &&
391 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
395 if (pt->type != NLA_NESTED && pt->type != NLA_NESTED_ARRAY &&
396 pt->type != NLA_UNSPEC && (nla->nla_type & NLA_F_NESTED)) {
397 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
403 switch (pt->type) {
405 if (extack && pt->reject_message) {
407 extack->_msg = pt->reject_message;
422 err = validate_nla_bitfield32(nla, pt->bitfield32_valid);
428 if (pt->len)
429 minlen = min_t(int, attrlen, pt->len + 1);
443 if (pt->len) {
449 if (attrlen > pt->len)
455 if (pt->len && attrlen > pt->len)
467 if (pt->nested_policy) {
469 pt->len, pt->nested_policy,
489 if (pt->nested_policy) {
493 pt->len, pt->nested_policy,
511 if (attrlen < pt->len)
516 if (pt->len)
517 minlen = pt->len;
519 minlen = nla_attr_minlen[pt->type];
526 switch (pt->validation_type) {
535 err = nla_validate_int_range(pt, nla, extack, validate);
540 err = nla_validate_mask(pt, nla, extack);
545 if (pt->validate) {
546 err = pt->validate(nla, extack);
555 NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,