Message ID | 20200922001000.899956-11-mathieu.poirier@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | rpmsg: Make RPMSG name service modular | expand |
Hi Mathieu, I love your patch! Perhaps something to improve: [auto build test WARNING on next-20200921] [cannot apply to linux/master linus/master rpmsg/for-next v5.9-rc6 v5.9-rc5 v5.9-rc4 v5.9-rc6] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Mathieu-Poirier/rpmsg-Make-RPMSG-name-service-modular/20200922-081745 base: b10b8ad862118bf42c28a98b0f067619aadcfb23 config: i386-randconfig-s001-20200921 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.2-201-g24bdaac6-dirty # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> sparse warnings: (new ones prefixed by >>) drivers/rpmsg/virtio_rpmsg_bus.c:165:43: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __virtio16 [usertype] val @@ got unsigned short [usertype] val @@ drivers/rpmsg/virtio_rpmsg_bus.c:165:43: sparse: expected restricted __virtio16 [usertype] val drivers/rpmsg/virtio_rpmsg_bus.c:165:43: sparse: got unsigned short [usertype] val drivers/rpmsg/virtio_rpmsg_bus.c:173:31: sparse: sparse: incorrect type in return expression (different base types) @@ expected unsigned short @@ got restricted __virtio16 @@ drivers/rpmsg/virtio_rpmsg_bus.c:173:31: sparse: expected unsigned short drivers/rpmsg/virtio_rpmsg_bus.c:173:31: sparse: got restricted __virtio16 drivers/rpmsg/virtio_rpmsg_bus.c:181:43: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __virtio32 [usertype] val @@ got unsigned int [usertype] val @@ drivers/rpmsg/virtio_rpmsg_bus.c:181:43: sparse: expected restricted __virtio32 [usertype] val drivers/rpmsg/virtio_rpmsg_bus.c:181:43: sparse: got unsigned int [usertype] val drivers/rpmsg/virtio_rpmsg_bus.c:189:31: sparse: sparse: incorrect type in return expression (different base types) @@ expected unsigned int @@ got restricted __virtio32 @@ drivers/rpmsg/virtio_rpmsg_bus.c:189:31: sparse: expected unsigned int drivers/rpmsg/virtio_rpmsg_bus.c:189:31: sparse: got restricted __virtio32 >> drivers/rpmsg/virtio_rpmsg_bus.c:267:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [addressable] [usertype] addr @@ got restricted __virtio32 @@ >> drivers/rpmsg/virtio_rpmsg_bus.c:267:26: sparse: expected unsigned int [addressable] [usertype] addr drivers/rpmsg/virtio_rpmsg_bus.c:267:26: sparse: got restricted __virtio32 >> drivers/rpmsg/virtio_rpmsg_bus.c:268:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [addressable] [usertype] flags @@ got restricted __virtio32 @@ >> drivers/rpmsg/virtio_rpmsg_bus.c:268:27: sparse: expected unsigned int [addressable] [usertype] flags drivers/rpmsg/virtio_rpmsg_bus.c:268:27: sparse: got restricted __virtio32 drivers/rpmsg/virtio_rpmsg_bus.c:291:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [addressable] [usertype] addr @@ got restricted __virtio32 @@ drivers/rpmsg/virtio_rpmsg_bus.c:291:26: sparse: expected unsigned int [addressable] [usertype] addr drivers/rpmsg/virtio_rpmsg_bus.c:291:26: sparse: got restricted __virtio32 drivers/rpmsg/virtio_rpmsg_bus.c:292:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [addressable] [usertype] flags @@ got restricted __virtio32 @@ drivers/rpmsg/virtio_rpmsg_bus.c:292:27: sparse: expected unsigned int [addressable] [usertype] flags drivers/rpmsg/virtio_rpmsg_bus.c:292:27: sparse: got restricted __virtio32 # https://github.com/0day-ci/linux/commit/ab159ea48198df2ab06ff9fe97e63cca354bff20 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mathieu-Poirier/rpmsg-Make-RPMSG-name-service-modular/20200922-081745 git checkout ab159ea48198df2ab06ff9fe97e63cca354bff20 vim +267 drivers/rpmsg/virtio_rpmsg_bus.c dd032e0b67fcd61 Mathieu Poirier 2020-09-21 167 dd032e0b67fcd61 Mathieu Poirier 2020-09-21 168 static u16 virtio_rpmsg_cpu_to_transport16(struct rpmsg_device *rpdev, u16 val) dd032e0b67fcd61 Mathieu Poirier 2020-09-21 169 { dd032e0b67fcd61 Mathieu Poirier 2020-09-21 170 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); dd032e0b67fcd61 Mathieu Poirier 2020-09-21 171 struct virtproc_info *vrp = vch->vrp; dd032e0b67fcd61 Mathieu Poirier 2020-09-21 172 dd032e0b67fcd61 Mathieu Poirier 2020-09-21 @173 return cpu_to_virtio16(vrp->vdev, val); dd032e0b67fcd61 Mathieu Poirier 2020-09-21 174 } dd032e0b67fcd61 Mathieu Poirier 2020-09-21 175 dd032e0b67fcd61 Mathieu Poirier 2020-09-21 176 static u32 virtio_rpmsg_transport32_to_cpu(struct rpmsg_device *rpdev, u32 val) dd032e0b67fcd61 Mathieu Poirier 2020-09-21 177 { dd032e0b67fcd61 Mathieu Poirier 2020-09-21 178 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); dd032e0b67fcd61 Mathieu Poirier 2020-09-21 179 struct virtproc_info *vrp = vch->vrp; dd032e0b67fcd61 Mathieu Poirier 2020-09-21 180 dd032e0b67fcd61 Mathieu Poirier 2020-09-21 @181 return virtio32_to_cpu(vrp->vdev, val); dd032e0b67fcd61 Mathieu Poirier 2020-09-21 182 } dd032e0b67fcd61 Mathieu Poirier 2020-09-21 183 dd032e0b67fcd61 Mathieu Poirier 2020-09-21 184 static u32 virtio_rpmsg_cpu_to_transport32(struct rpmsg_device *rpdev, u32 val) dd032e0b67fcd61 Mathieu Poirier 2020-09-21 185 { dd032e0b67fcd61 Mathieu Poirier 2020-09-21 186 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); dd032e0b67fcd61 Mathieu Poirier 2020-09-21 187 struct virtproc_info *vrp = vch->vrp; dd032e0b67fcd61 Mathieu Poirier 2020-09-21 188 dd032e0b67fcd61 Mathieu Poirier 2020-09-21 189 return cpu_to_virtio32(vrp->vdev, val); dd032e0b67fcd61 Mathieu Poirier 2020-09-21 190 } dd032e0b67fcd61 Mathieu Poirier 2020-09-21 191 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 192 static struct rpmsg_device * 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 193 virtio_rpmsg_create_channel(struct rpmsg_device *rpdev, 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 194 struct rpmsg_channel_info *chinfo) 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 195 { 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 196 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 197 struct virtproc_info *vrp = vch->vrp; 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 198 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 199 return __rpmsg_create_channel(vrp, chinfo); 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 200 } 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 201 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 202 static int virtio_rpmsg_release_channel(struct rpmsg_device *rpdev, 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 203 struct rpmsg_channel_info *chinfo) 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 204 { 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 205 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 206 struct virtproc_info *vrp = vch->vrp; 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 207 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 208 return rpmsg_unregister_device(&vrp->vdev->dev, chinfo); 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 209 } 644f6e9ac5ebdd8 Arnaud Pouliquen 2020-09-21 210 36b72c7dca71871 Bjorn Andersson 2016-09-01 211 static struct rpmsg_endpoint *virtio_rpmsg_create_ept(struct rpmsg_device *rpdev, 36b72c7dca71871 Bjorn Andersson 2016-09-01 212 rpmsg_rx_cb_t cb, 36b72c7dca71871 Bjorn Andersson 2016-09-01 213 void *priv, 36b72c7dca71871 Bjorn Andersson 2016-09-01 214 struct rpmsg_channel_info chinfo) 36b72c7dca71871 Bjorn Andersson 2016-09-01 215 { 3bf950ff23337fc Bjorn Andersson 2016-09-01 216 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); 3bf950ff23337fc Bjorn Andersson 2016-09-01 217 3bf950ff23337fc Bjorn Andersson 2016-09-01 218 return __rpmsg_create_ept(vch->vrp, rpdev, cb, priv, chinfo.src); 36b72c7dca71871 Bjorn Andersson 2016-09-01 219 } 36b72c7dca71871 Bjorn Andersson 2016-09-01 220 bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 221 /** fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 222 * __rpmsg_destroy_ept() - destroy an existing rpmsg endpoint fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 223 * @vrp: virtproc which owns this ept bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 224 * @ept: endpoing to destroy bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 225 * fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 226 * An internal function which destroy an ept without assuming it is fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 227 * bound to an rpmsg channel. This is needed for handling the internal fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 228 * name service endpoint, which isn't bound to an rpmsg channel. fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 229 * See also __rpmsg_create_ept(). bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 230 */ fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 231 static void fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 232 __rpmsg_destroy_ept(struct virtproc_info *vrp, struct rpmsg_endpoint *ept) bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 233 { 15fd943af50dbc5 Ohad Ben-Cohen 2012-06-07 234 /* make sure new inbound messages can't find this ept anymore */ bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 235 mutex_lock(&vrp->endpoints_lock); bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 236 idr_remove(&vrp->endpoints, ept->addr); bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 237 mutex_unlock(&vrp->endpoints_lock); bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 238 15fd943af50dbc5 Ohad Ben-Cohen 2012-06-07 239 /* make sure in-flight inbound messages won't invoke cb anymore */ 15fd943af50dbc5 Ohad Ben-Cohen 2012-06-07 240 mutex_lock(&ept->cb_lock); 15fd943af50dbc5 Ohad Ben-Cohen 2012-06-07 241 ept->cb = NULL; 15fd943af50dbc5 Ohad Ben-Cohen 2012-06-07 242 mutex_unlock(&ept->cb_lock); 15fd943af50dbc5 Ohad Ben-Cohen 2012-06-07 243 5a081caa0414b9b Ohad Ben-Cohen 2012-06-06 244 kref_put(&ept->refcount, __ept_release); bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 245 } fa2d7795b2e8595 Ohad Ben-Cohen 2012-02-09 246 8a228ecfe086b84 Bjorn Andersson 2016-09-01 247 static void virtio_rpmsg_destroy_ept(struct rpmsg_endpoint *ept) 8a228ecfe086b84 Bjorn Andersson 2016-09-01 248 { 3bf950ff23337fc Bjorn Andersson 2016-09-01 249 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(ept->rpdev); 3bf950ff23337fc Bjorn Andersson 2016-09-01 250 3bf950ff23337fc Bjorn Andersson 2016-09-01 251 __rpmsg_destroy_ept(vch->vrp, ept); 8a228ecfe086b84 Bjorn Andersson 2016-09-01 252 } 8a228ecfe086b84 Bjorn Andersson 2016-09-01 253 36b72c7dca71871 Bjorn Andersson 2016-09-01 254 static int virtio_rpmsg_announce_create(struct rpmsg_device *rpdev) 36b72c7dca71871 Bjorn Andersson 2016-09-01 255 { 3bf950ff23337fc Bjorn Andersson 2016-09-01 256 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); 3bf950ff23337fc Bjorn Andersson 2016-09-01 257 struct virtproc_info *vrp = vch->vrp; 36b72c7dca71871 Bjorn Andersson 2016-09-01 258 struct device *dev = &rpdev->dev; 36b72c7dca71871 Bjorn Andersson 2016-09-01 259 int err = 0; 36b72c7dca71871 Bjorn Andersson 2016-09-01 260 bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 261 /* need to tell remote processor's name service about this channel ? */ b2599ebffb2d32e Henri Roosen 2017-06-02 262 if (rpdev->announce && rpdev->ept && bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 263 virtio_has_feature(vrp->vdev, VIRTIO_RPMSG_F_NS)) { bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 264 struct rpmsg_ns_msg nsm; bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 265 bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 266 strncpy(nsm.name, rpdev->id.name, RPMSG_NAME_SIZE); 111d1089700cdb7 Guennadi Liakhovetski 2020-07-21 @267 nsm.addr = cpu_to_virtio32(vrp->vdev, rpdev->ept->addr); 111d1089700cdb7 Guennadi Liakhovetski 2020-07-21 @268 nsm.flags = cpu_to_virtio32(vrp->vdev, RPMSG_NS_CREATE); bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 269 2a48d7322dc88f1 Bjorn Andersson 2016-09-01 270 err = rpmsg_sendto(rpdev->ept, &nsm, sizeof(nsm), RPMSG_NS_ADDR); bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 271 if (err) bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 272 dev_err(dev, "failed to announce service %d\n", err); bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 273 } bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 274 bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 275 return err; bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 276 } bcabbccabffe732 Ohad Ben-Cohen 2011-10-20 277 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On Mon, Sep 21, 2020 at 06:10:00PM -0600, Mathieu Poirier wrote: > Make name service module transport agnostic by using the rpmsg > device specific byte conversion routine. > > Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> > --- > drivers/rpmsg/rpmsg_ns.c | 10 ++++------ > include/linux/rpmsg_ns.h | 4 ++-- > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/rpmsg/rpmsg_ns.c b/drivers/rpmsg/rpmsg_ns.c > index b3318bf84433..1df3aaadfe10 100644 > --- a/drivers/rpmsg/rpmsg_ns.c > +++ b/drivers/rpmsg/rpmsg_ns.c > @@ -18,9 +18,7 @@ static int rpmsg_ns_cb(struct rpmsg_device *rpdev, void *data, int len, > struct rpmsg_ns_msg *msg = data; > struct rpmsg_device *newch; > struct rpmsg_channel_info chinfo; > - struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); > - struct virtproc_info *vrp = vch->vrp; > - struct device *dev = &vrp->vdev->dev; > + struct device *dev = &rpdev->dev; > int ret; > > #if defined(CONFIG_DYNAMIC_DEBUG) > @@ -38,13 +36,13 @@ static int rpmsg_ns_cb(struct rpmsg_device *rpdev, void *data, int len, > > strncpy(chinfo.name, msg->name, sizeof(chinfo.name)); > chinfo.src = RPMSG_ADDR_ANY; > - chinfo.dst = virtio32_to_cpu(vrp->vdev, msg->addr); > + chinfo.dst = rpmsg32_to_cpu(rpdev, msg->addr); > > dev_info(dev, "%sing channel %s addr 0x%x\n", > - virtio32_to_cpu(vrp->vdev, msg->flags) & RPMSG_NS_DESTROY ? > + rpmsg32_to_cpu(rpdev, msg->flags) & RPMSG_NS_DESTROY ? > "destroy" : "creat", msg->name, chinfo.dst); > > - if (virtio32_to_cpu(vrp->vdev, msg->flags) & RPMSG_NS_DESTROY) { > + if (rpmsg32_to_cpu(rpdev, msg->flags) & RPMSG_NS_DESTROY) { > ret = rpmsg_release_channel(rpdev, &chinfo); > if (ret) > dev_err(dev, "rpmsg_destroy_channel failed: %d\n", ret); > diff --git a/include/linux/rpmsg_ns.h b/include/linux/rpmsg_ns.h > index aabc6c3c0d6d..9f3030b2145b 100644 > --- a/include/linux/rpmsg_ns.h > +++ b/include/linux/rpmsg_ns.h > @@ -41,8 +41,8 @@ struct rpmsg_hdr { > */ > struct rpmsg_ns_msg { > char name[RPMSG_NAME_SIZE]; > - __virtio32 addr; > - __virtio32 flags; > + u32 addr; > + u32 flags; These aren't (necessarily) native endianness, right? Don't they deserve a separate type? __rpmsg32? Thanks Guennadi > } __packed; > > /** > -- > 2.25.1 >
On Wed, Sep 30, 2020 at 09:13:27AM +0200, Guennadi Liakhovetski wrote: > On Mon, Sep 21, 2020 at 06:10:00PM -0600, Mathieu Poirier wrote: > > Make name service module transport agnostic by using the rpmsg > > device specific byte conversion routine. > > > > Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> > > --- > > drivers/rpmsg/rpmsg_ns.c | 10 ++++------ > > include/linux/rpmsg_ns.h | 4 ++-- > > 2 files changed, 6 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/rpmsg/rpmsg_ns.c b/drivers/rpmsg/rpmsg_ns.c > > index b3318bf84433..1df3aaadfe10 100644 > > --- a/drivers/rpmsg/rpmsg_ns.c > > +++ b/drivers/rpmsg/rpmsg_ns.c > > @@ -18,9 +18,7 @@ static int rpmsg_ns_cb(struct rpmsg_device *rpdev, void *data, int len, > > struct rpmsg_ns_msg *msg = data; > > struct rpmsg_device *newch; > > struct rpmsg_channel_info chinfo; > > - struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); > > - struct virtproc_info *vrp = vch->vrp; > > - struct device *dev = &vrp->vdev->dev; > > + struct device *dev = &rpdev->dev; > > int ret; > > > > #if defined(CONFIG_DYNAMIC_DEBUG) > > @@ -38,13 +36,13 @@ static int rpmsg_ns_cb(struct rpmsg_device *rpdev, void *data, int len, > > > > strncpy(chinfo.name, msg->name, sizeof(chinfo.name)); > > chinfo.src = RPMSG_ADDR_ANY; > > - chinfo.dst = virtio32_to_cpu(vrp->vdev, msg->addr); > > + chinfo.dst = rpmsg32_to_cpu(rpdev, msg->addr); > > > > dev_info(dev, "%sing channel %s addr 0x%x\n", > > - virtio32_to_cpu(vrp->vdev, msg->flags) & RPMSG_NS_DESTROY ? > > + rpmsg32_to_cpu(rpdev, msg->flags) & RPMSG_NS_DESTROY ? > > "destroy" : "creat", msg->name, chinfo.dst); > > > > - if (virtio32_to_cpu(vrp->vdev, msg->flags) & RPMSG_NS_DESTROY) { > > + if (rpmsg32_to_cpu(rpdev, msg->flags) & RPMSG_NS_DESTROY) { > > ret = rpmsg_release_channel(rpdev, &chinfo); > > if (ret) > > dev_err(dev, "rpmsg_destroy_channel failed: %d\n", ret); > > diff --git a/include/linux/rpmsg_ns.h b/include/linux/rpmsg_ns.h > > index aabc6c3c0d6d..9f3030b2145b 100644 > > --- a/include/linux/rpmsg_ns.h > > +++ b/include/linux/rpmsg_ns.h > > @@ -41,8 +41,8 @@ struct rpmsg_hdr { > > */ > > struct rpmsg_ns_msg { > > char name[RPMSG_NAME_SIZE]; > > - __virtio32 addr; > > - __virtio32 flags; > > + u32 addr; > > + u32 flags; > > These aren't (necessarily) native endianness, right? Don't they deserve a > separate type? __rpmsg32? > I kept them as u32 type to be as generic as possible and let the endianness conversion callback do the work. Making them a __rpmsg32 is a good idea, it would force a proper implementation. > Thanks > Guennadi > > > } __packed; > > > > /** > > -- > > 2.25.1 > >
diff --git a/drivers/rpmsg/rpmsg_ns.c b/drivers/rpmsg/rpmsg_ns.c index b3318bf84433..1df3aaadfe10 100644 --- a/drivers/rpmsg/rpmsg_ns.c +++ b/drivers/rpmsg/rpmsg_ns.c @@ -18,9 +18,7 @@ static int rpmsg_ns_cb(struct rpmsg_device *rpdev, void *data, int len, struct rpmsg_ns_msg *msg = data; struct rpmsg_device *newch; struct rpmsg_channel_info chinfo; - struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); - struct virtproc_info *vrp = vch->vrp; - struct device *dev = &vrp->vdev->dev; + struct device *dev = &rpdev->dev; int ret; #if defined(CONFIG_DYNAMIC_DEBUG) @@ -38,13 +36,13 @@ static int rpmsg_ns_cb(struct rpmsg_device *rpdev, void *data, int len, strncpy(chinfo.name, msg->name, sizeof(chinfo.name)); chinfo.src = RPMSG_ADDR_ANY; - chinfo.dst = virtio32_to_cpu(vrp->vdev, msg->addr); + chinfo.dst = rpmsg32_to_cpu(rpdev, msg->addr); dev_info(dev, "%sing channel %s addr 0x%x\n", - virtio32_to_cpu(vrp->vdev, msg->flags) & RPMSG_NS_DESTROY ? + rpmsg32_to_cpu(rpdev, msg->flags) & RPMSG_NS_DESTROY ? "destroy" : "creat", msg->name, chinfo.dst); - if (virtio32_to_cpu(vrp->vdev, msg->flags) & RPMSG_NS_DESTROY) { + if (rpmsg32_to_cpu(rpdev, msg->flags) & RPMSG_NS_DESTROY) { ret = rpmsg_release_channel(rpdev, &chinfo); if (ret) dev_err(dev, "rpmsg_destroy_channel failed: %d\n", ret); diff --git a/include/linux/rpmsg_ns.h b/include/linux/rpmsg_ns.h index aabc6c3c0d6d..9f3030b2145b 100644 --- a/include/linux/rpmsg_ns.h +++ b/include/linux/rpmsg_ns.h @@ -41,8 +41,8 @@ struct rpmsg_hdr { */ struct rpmsg_ns_msg { char name[RPMSG_NAME_SIZE]; - __virtio32 addr; - __virtio32 flags; + u32 addr; + u32 flags; } __packed; /**
Make name service module transport agnostic by using the rpmsg device specific byte conversion routine. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> --- drivers/rpmsg/rpmsg_ns.c | 10 ++++------ include/linux/rpmsg_ns.h | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-)