blk-mq: don't count completed flush data request as inflight in case of quiesce
[linux-block.git] / lib / nlattr.c
index 7a2b6c38fd597fa67c6ec8d55569b6cb55241386..dc15e7888fc1fec5747252f3ef1b3d7b5d7d5bd8 100644 (file)
@@ -134,6 +134,7 @@ void nla_get_range_unsigned(const struct nla_policy *pt,
                range->max = U32_MAX;
                break;
        case NLA_U64:
+       case NLA_UINT:
        case NLA_MSECS:
                range->max = U64_MAX;
                break;
@@ -183,6 +184,9 @@ static int nla_validate_range_unsigned(const struct nla_policy *pt,
        case NLA_U64:
                value = nla_get_u64(nla);
                break;
+       case NLA_UINT:
+               value = nla_get_uint(nla);
+               break;
        case NLA_MSECS:
                value = nla_get_u64(nla);
                break;
@@ -248,6 +252,7 @@ void nla_get_range_signed(const struct nla_policy *pt,
                range->max = S32_MAX;
                break;
        case NLA_S64:
+       case NLA_SINT:
                range->min = S64_MIN;
                range->max = S64_MAX;
                break;
@@ -295,6 +300,9 @@ static int nla_validate_int_range_signed(const struct nla_policy *pt,
        case NLA_S64:
                value = nla_get_s64(nla);
                break;
+       case NLA_SINT:
+               value = nla_get_sint(nla);
+               break;
        default:
                return -EINVAL;
        }
@@ -320,6 +328,7 @@ static int nla_validate_int_range(const struct nla_policy *pt,
        case NLA_U16:
        case NLA_U32:
        case NLA_U64:
+       case NLA_UINT:
        case NLA_MSECS:
        case NLA_BINARY:
        case NLA_BE16:
@@ -329,6 +338,7 @@ static int nla_validate_int_range(const struct nla_policy *pt,
        case NLA_S16:
        case NLA_S32:
        case NLA_S64:
+       case NLA_SINT:
                return nla_validate_int_range_signed(pt, nla, extack);
        default:
                WARN_ON(1);
@@ -355,6 +365,9 @@ static int nla_validate_mask(const struct nla_policy *pt,
        case NLA_U64:
                value = nla_get_u64(nla);
                break;
+       case NLA_UINT:
+               value = nla_get_uint(nla);
+               break;
        case NLA_BE16:
                value = ntohs(nla_get_be16(nla));
                break;
@@ -433,6 +446,15 @@ static int validate_nla(const struct nlattr *nla, int maxtype,
                        goto out_err;
                break;
 
+       case NLA_SINT:
+       case NLA_UINT:
+               if (attrlen != sizeof(u32) && attrlen != sizeof(u64)) {
+                       NL_SET_ERR_MSG_ATTR_POL(extack, nla, pt,
+                                               "invalid attribute length");
+                       return -EINVAL;
+               }
+               break;
+
        case NLA_BITFIELD32:
                if (attrlen != sizeof(struct nla_bitfield32))
                        goto out_err;