[patch v10 1/4] drivers: jtag: Add JTAG core driver (fwd)
Julia Lawall
julia.lawall at lip6.fr
Fri Nov 3 00:06:02 AEDT 2017
It looks like the return on line 137 belongs after line 138.
julia
---------- Forwarded message ----------
Date: Thu, 2 Nov 2017 21:02:22 +0800
From: kbuild test robot <fengguang.wu at intel.com>
To: kbuild at 01.org
Cc: Julia Lawall <julia.lawall at lip6.fr>
Subject: Re: [patch v10 1/4] drivers: jtag: Add JTAG core driver
In-Reply-To: <1509365528-28803-2-git-send-email-oleksandrs at mellanox.com>
References: <1509365528-28803-2-git-send-email-oleksandrs at mellanox.com>
Hi Oleksandr,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v4.14-rc7]
[cannot apply to next-20171102]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Oleksandr-Shamray/JTAG-driver-introduction/20171102-045624
:::::: branch date: 16 hours ago
:::::: commit date: 16 hours ago
>> drivers/jtag/jtag.c:142:16-25: ERROR: reference preceded by free on line 138
# https://github.com/0day-ci/linux/commit/1a7d120a0e3ba075879bc00ab136c4608f16a2a7
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 1a7d120a0e3ba075879bc00ab136c4608f16a2a7
vim +142 drivers/jtag/jtag.c
1a7d120a Oleksandr Shamray 2017-10-30 46
1a7d120a Oleksandr Shamray 2017-10-30 47 static long jtag_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
1a7d120a Oleksandr Shamray 2017-10-30 48 {
1a7d120a Oleksandr Shamray 2017-10-30 49 struct jtag *jtag = file->private_data;
1a7d120a Oleksandr Shamray 2017-10-30 50 struct jtag_run_test_idle idle;
1a7d120a Oleksandr Shamray 2017-10-30 51 struct jtag_xfer xfer;
1a7d120a Oleksandr Shamray 2017-10-30 52 u8 *xfer_data;
1a7d120a Oleksandr Shamray 2017-10-30 53 u32 data_size;
1a7d120a Oleksandr Shamray 2017-10-30 54 u32 value;
1a7d120a Oleksandr Shamray 2017-10-30 55 int err;
1a7d120a Oleksandr Shamray 2017-10-30 56
1a7d120a Oleksandr Shamray 2017-10-30 57 if (!arg)
1a7d120a Oleksandr Shamray 2017-10-30 58 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 59
1a7d120a Oleksandr Shamray 2017-10-30 60 switch (cmd) {
1a7d120a Oleksandr Shamray 2017-10-30 61 case JTAG_GIOCFREQ:
1a7d120a Oleksandr Shamray 2017-10-30 62
1a7d120a Oleksandr Shamray 2017-10-30 63 if (jtag->ops->freq_get)
1a7d120a Oleksandr Shamray 2017-10-30 64 err = jtag->ops->freq_get(jtag, &value);
1a7d120a Oleksandr Shamray 2017-10-30 65 else
1a7d120a Oleksandr Shamray 2017-10-30 66 err = -EOPNOTSUPP;
1a7d120a Oleksandr Shamray 2017-10-30 67 if (err)
1a7d120a Oleksandr Shamray 2017-10-30 68 break;
1a7d120a Oleksandr Shamray 2017-10-30 69
1a7d120a Oleksandr Shamray 2017-10-30 70 if (put_user(value, (__u32 *)arg))
1a7d120a Oleksandr Shamray 2017-10-30 71 err = -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 72 break;
1a7d120a Oleksandr Shamray 2017-10-30 73
1a7d120a Oleksandr Shamray 2017-10-30 74 case JTAG_SIOCFREQ:
1a7d120a Oleksandr Shamray 2017-10-30 75 if (get_user(value, (__u32 *)arg))
1a7d120a Oleksandr Shamray 2017-10-30 76 return -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 77 if (value == 0)
1a7d120a Oleksandr Shamray 2017-10-30 78 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 79
1a7d120a Oleksandr Shamray 2017-10-30 80 if (jtag->ops->freq_set)
1a7d120a Oleksandr Shamray 2017-10-30 81 err = jtag->ops->freq_set(jtag, value);
1a7d120a Oleksandr Shamray 2017-10-30 82 else
1a7d120a Oleksandr Shamray 2017-10-30 83 err = -EOPNOTSUPP;
1a7d120a Oleksandr Shamray 2017-10-30 84 break;
1a7d120a Oleksandr Shamray 2017-10-30 85
1a7d120a Oleksandr Shamray 2017-10-30 86 case JTAG_IOCRUNTEST:
1a7d120a Oleksandr Shamray 2017-10-30 87 if (copy_from_user(&idle, (void *)arg,
1a7d120a Oleksandr Shamray 2017-10-30 88 sizeof(struct jtag_run_test_idle)))
1a7d120a Oleksandr Shamray 2017-10-30 89 return -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 90
1a7d120a Oleksandr Shamray 2017-10-30 91 if (idle.mode > JTAG_XFER_SW_MODE)
1a7d120a Oleksandr Shamray 2017-10-30 92 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 93
1a7d120a Oleksandr Shamray 2017-10-30 94 if (idle.endstate > JTAG_STATE_PAUSEDR)
1a7d120a Oleksandr Shamray 2017-10-30 95 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 96
1a7d120a Oleksandr Shamray 2017-10-30 97 if (jtag->ops->idle)
1a7d120a Oleksandr Shamray 2017-10-30 98 err = jtag->ops->idle(jtag, &idle);
1a7d120a Oleksandr Shamray 2017-10-30 99 else
1a7d120a Oleksandr Shamray 2017-10-30 100 err = -EOPNOTSUPP;
1a7d120a Oleksandr Shamray 2017-10-30 101 break;
1a7d120a Oleksandr Shamray 2017-10-30 102
1a7d120a Oleksandr Shamray 2017-10-30 103 case JTAG_IOCXFER:
1a7d120a Oleksandr Shamray 2017-10-30 104 if (copy_from_user(&xfer, (void *)arg,
1a7d120a Oleksandr Shamray 2017-10-30 105 sizeof(struct jtag_xfer)))
1a7d120a Oleksandr Shamray 2017-10-30 106 return -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 107
1a7d120a Oleksandr Shamray 2017-10-30 108 if (xfer.length >= JTAG_MAX_XFER_DATA_LEN)
1a7d120a Oleksandr Shamray 2017-10-30 109 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 110
1a7d120a Oleksandr Shamray 2017-10-30 111 if (xfer.mode > JTAG_XFER_SW_MODE)
1a7d120a Oleksandr Shamray 2017-10-30 112 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 113
1a7d120a Oleksandr Shamray 2017-10-30 114 if (xfer.type > JTAG_SDR_XFER)
1a7d120a Oleksandr Shamray 2017-10-30 115 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 116
1a7d120a Oleksandr Shamray 2017-10-30 117 if (xfer.direction > JTAG_WRITE_XFER)
1a7d120a Oleksandr Shamray 2017-10-30 118 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 119
1a7d120a Oleksandr Shamray 2017-10-30 120 if (xfer.endstate > JTAG_STATE_PAUSEDR)
1a7d120a Oleksandr Shamray 2017-10-30 121 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 122
1a7d120a Oleksandr Shamray 2017-10-30 123 data_size = DIV_ROUND_UP(xfer.length, BITS_PER_BYTE);
1a7d120a Oleksandr Shamray 2017-10-30 124 xfer_data = memdup_user(u64_to_user_ptr(xfer.tdio), data_size);
1a7d120a Oleksandr Shamray 2017-10-30 125
1a7d120a Oleksandr Shamray 2017-10-30 126 if (!xfer_data)
1a7d120a Oleksandr Shamray 2017-10-30 127 return -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 128
1a7d120a Oleksandr Shamray 2017-10-30 129 if (jtag->ops->xfer) {
1a7d120a Oleksandr Shamray 2017-10-30 130 err = jtag->ops->xfer(jtag, &xfer, xfer_data);
1a7d120a Oleksandr Shamray 2017-10-30 131 } else {
1a7d120a Oleksandr Shamray 2017-10-30 132 kfree(xfer_data);
1a7d120a Oleksandr Shamray 2017-10-30 133 return -EOPNOTSUPP;
1a7d120a Oleksandr Shamray 2017-10-30 134 }
1a7d120a Oleksandr Shamray 2017-10-30 135
1a7d120a Oleksandr Shamray 2017-10-30 136 if (err) {
1a7d120a Oleksandr Shamray 2017-10-30 137 return -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 @138 kfree(xfer_data);
1a7d120a Oleksandr Shamray 2017-10-30 139 }
1a7d120a Oleksandr Shamray 2017-10-30 140
1a7d120a Oleksandr Shamray 2017-10-30 141 err = copy_to_user(u64_to_user_ptr(xfer.tdio),
1a7d120a Oleksandr Shamray 2017-10-30 @142 (void *)(xfer_data), data_size);
1a7d120a Oleksandr Shamray 2017-10-30 143
1a7d120a Oleksandr Shamray 2017-10-30 144 if (err) {
1a7d120a Oleksandr Shamray 2017-10-30 145 kfree(xfer_data);
1a7d120a Oleksandr Shamray 2017-10-30 146 return -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 147 }
1a7d120a Oleksandr Shamray 2017-10-30 148
1a7d120a Oleksandr Shamray 2017-10-30 149 kfree(xfer_data);
1a7d120a Oleksandr Shamray 2017-10-30 150 if (copy_to_user((void *)arg, &xfer, sizeof(struct jtag_xfer)))
1a7d120a Oleksandr Shamray 2017-10-30 151 return -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 152 break;
1a7d120a Oleksandr Shamray 2017-10-30 153
1a7d120a Oleksandr Shamray 2017-10-30 154 case JTAG_GIOCSTATUS:
1a7d120a Oleksandr Shamray 2017-10-30 155 if (jtag->ops->status_get)
1a7d120a Oleksandr Shamray 2017-10-30 156 err = jtag->ops->status_get(jtag, &value);
1a7d120a Oleksandr Shamray 2017-10-30 157 else
1a7d120a Oleksandr Shamray 2017-10-30 158 err = -EOPNOTSUPP;
1a7d120a Oleksandr Shamray 2017-10-30 159 if (err)
1a7d120a Oleksandr Shamray 2017-10-30 160 break;
1a7d120a Oleksandr Shamray 2017-10-30 161
1a7d120a Oleksandr Shamray 2017-10-30 162 err = put_user(value, (__u32 *)arg);
1a7d120a Oleksandr Shamray 2017-10-30 163 if (err)
1a7d120a Oleksandr Shamray 2017-10-30 164 err = -EFAULT;
1a7d120a Oleksandr Shamray 2017-10-30 165 break;
1a7d120a Oleksandr Shamray 2017-10-30 166
1a7d120a Oleksandr Shamray 2017-10-30 167 default:
1a7d120a Oleksandr Shamray 2017-10-30 168 return -EINVAL;
1a7d120a Oleksandr Shamray 2017-10-30 169 }
1a7d120a Oleksandr Shamray 2017-10-30 170 return err;
1a7d120a Oleksandr Shamray 2017-10-30 171 }
1a7d120a Oleksandr Shamray 2017-10-30 172
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
More information about the openbmc
mailing list