search for: vmsg_i

Displaying 9 results from an estimated 9 matches for "vmsg_i".

2020 Sep 03
9
[PATCH] i2c: virtio: add a virtio i2c frontend driver
...t;status)); + sgs[outcnt + incnt++] = &status; + + return virtqueue_add_sgs(vq, sgs, outcnt, incnt, vmsg, GFP_KERNEL); +} + +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) +{ + struct virtio_i2c *vi = i2c_get_adapdata(adap); + struct virtio_i2c_msg *vmsg_o, *vmsg_i; + struct virtqueue *vq = vi->vq; + unsigned long time_left; + int len, i, ret = 0; + + vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); + if (!vmsg_o) + return -ENOMEM; + + mutex_lock(&vi->i2c_lock); + vmsg_o->buf = NULL; + for (i = 0; i < num; i++) { + ret = virtio_i2c_add_msg(vq,...
2020 Sep 03
9
[PATCH] i2c: virtio: add a virtio i2c frontend driver
...t;status)); + sgs[outcnt + incnt++] = &status; + + return virtqueue_add_sgs(vq, sgs, outcnt, incnt, vmsg, GFP_KERNEL); +} + +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) +{ + struct virtio_i2c *vi = i2c_get_adapdata(adap); + struct virtio_i2c_msg *vmsg_o, *vmsg_i; + struct virtqueue *vq = vi->vq; + unsigned long time_left; + int len, i, ret = 0; + + vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); + if (!vmsg_o) + return -ENOMEM; + + mutex_lock(&vi->i2c_lock); + vmsg_o->buf = NULL; + for (i = 0; i < num; i++) { + ret = virtio_i2c_add_msg(vq,...
2020 Sep 03
0
[PATCH] i2c: virtio: add a virtio i2c frontend driver
..._packed; As Misha noticed and somewhere I saw 0-day reports these should be carefully taken care of. ... > +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) > +{ > + struct virtio_i2c *vi = i2c_get_adapdata(adap); > + struct virtio_i2c_msg *vmsg_o, *vmsg_i; > + struct virtqueue *vq = vi->vq; > + unsigned long time_left; > + int len, i, ret = 0; > + > + vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); > + if (!vmsg_o) > + return -ENOMEM; > + > + mutex_lock(&vi->i2c_lock); > + vmsg_o->buf = NULL; > + for (i...
2020 Sep 03
0
[PATCH] i2c: virtio: add a virtio i2c frontend driver
...mp;status; > + > + return virtqueue_add_sgs(vq, sgs, outcnt, incnt, vmsg, GFP_KERNEL); > +} > + > +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) > +{ > + struct virtio_i2c *vi = i2c_get_adapdata(adap); > + struct virtio_i2c_msg *vmsg_o, *vmsg_i; > + struct virtqueue *vq = vi->vq; > + unsigned long time_left; > + int len, i, ret = 0; > + > + vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); > + if (!vmsg_o) > + return -ENOMEM; > + > + mutex_lock(&vi->i2c_lock); > + vmsg_o->buf = NULL; > + for (i...
2020 Sep 03
0
[PATCH] i2c: virtio: add a virtio i2c frontend driver
...mp;status; > + > + return virtqueue_add_sgs(vq, sgs, outcnt, incnt, vmsg, GFP_KERNEL); > +} > + > +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) > +{ > + struct virtio_i2c *vi = i2c_get_adapdata(adap); > + struct virtio_i2c_msg *vmsg_o, *vmsg_i; > + struct virtqueue *vq = vi->vq; > + unsigned long time_left; > + int len, i, ret = 0; > + > + vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); > + if (!vmsg_o) > + return -ENOMEM; > + > + mutex_lock(&vi->i2c_lock); > + vmsg_o->buf = NULL; > + for (i...
2020 Sep 04
0
[PATCH] i2c: virtio: add a virtio i2c frontend driver
...mp;status; > + > + return virtqueue_add_sgs(vq, sgs, outcnt, incnt, vmsg, GFP_KERNEL); > +} > + > +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) > +{ > + struct virtio_i2c *vi = i2c_get_adapdata(adap); > + struct virtio_i2c_msg *vmsg_o, *vmsg_i; > + struct virtqueue *vq = vi->vq; > + unsigned long time_left; > + int len, i, ret = 0; > + > + vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); > + if (!vmsg_o) > + return -ENOMEM; It looks to me we can avoid the allocation by embedding virtio_i2c_msg into struct virtio...
2020 Sep 04
2
[PATCH] i2c: virtio: add a virtio i2c frontend driver
...e_add_sgs(vq, sgs, outcnt, incnt, vmsg, GFP_KERNEL); >> +} >> + >> +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg >> *msgs, int num) >> +{ >> +??? struct virtio_i2c *vi = i2c_get_adapdata(adap); >> +??? struct virtio_i2c_msg *vmsg_o, *vmsg_i; >> +??? struct virtqueue *vq = vi->vq; >> +??? unsigned long time_left; >> +??? int len, i, ret = 0; >> + >> +??? vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); >> +??? if (!vmsg_o) >> +??????? return -ENOMEM; > > > It looks to me we can avoid...
2020 Sep 04
2
[PATCH] i2c: virtio: add a virtio i2c frontend driver
...e_add_sgs(vq, sgs, outcnt, incnt, vmsg, GFP_KERNEL); >> +} >> + >> +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg >> *msgs, int num) >> +{ >> +??? struct virtio_i2c *vi = i2c_get_adapdata(adap); >> +??? struct virtio_i2c_msg *vmsg_o, *vmsg_i; >> +??? struct virtqueue *vq = vi->vq; >> +??? unsigned long time_left; >> +??? int len, i, ret = 0; >> + >> +??? vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); >> +??? if (!vmsg_o) >> +??????? return -ENOMEM; > > > It looks to me we can avoid...
2020 Sep 07
0
[PATCH] i2c: virtio: add a virtio i2c frontend driver
...gt;>> GFP_KERNEL); >>> +} >>> + >>> +static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg >>> *msgs, int num) >>> +{ >>> +??? struct virtio_i2c *vi = i2c_get_adapdata(adap); >>> +??? struct virtio_i2c_msg *vmsg_o, *vmsg_i; >>> +??? struct virtqueue *vq = vi->vq; >>> +??? unsigned long time_left; >>> +??? int len, i, ret = 0; >>> + >>> +??? vmsg_o = kzalloc(sizeof(*vmsg_o), GFP_KERNEL); >>> +??? if (!vmsg_o) >>> +??????? return -ENOMEM; >> >&g...