int i;
int ntokens = 1;
unsigned int *tokenized_data;
+ int err = -EINVAL;
cp = buf;
while ((cp = strpbrk(cp + 1, " :")))
ntokens++;
- if (!(ntokens & 0x1)) {
- tokenized_data = ERR_PTR(-EINVAL);
+ if (!(ntokens & 0x1))
goto err;
- }
tokenized_data = kmalloc(ntokens * sizeof(unsigned int), GFP_KERNEL);
if (!tokenized_data) {
- tokenized_data = ERR_PTR(-ENOMEM);
+ err = -ENOMEM;
goto err;
}
cp = buf;
i = 0;
while (i < ntokens) {
- if (sscanf(cp, "%u", &tokenized_data[i++]) != 1) {
- tokenized_data = ERR_PTR(-EINVAL);
+ if (sscanf(cp, "%u", &tokenized_data[i++]) != 1)
goto err_kfree;
- }
cp = strpbrk(cp, " :");
if (!cp)
cp++;
}
- if (i != ntokens) {
- tokenized_data = ERR_PTR(-EINVAL);
+ if (i != ntokens)
goto err_kfree;
- }
*num_tokens = ntokens;
return tokenized_data;
err_kfree:
kfree(tokenized_data);
err:
- return tokenized_data;
+ return ERR_PTR(err);
}
static ssize_t show_target_loads(