From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH v8 1/3] Drivers: hv: vmbus: Add vmbus_requestor data structure for VMBus hardening
Date: Thu, 05 Nov 2020 15:24:20 +0300 [thread overview]
Message-ID: <20201105122420.GB29398@kadam> (raw)
In-Reply-To: <20201104154027.319432-2-parri.andrea@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 12409 bytes --]
Hi Andrea,
url: https://github.com/0day-ci/linux/commits/Andrea-Parri-Microsoft/Drivers-hv-vmbus-vmbus_requestor-data-structure-for-VMBus-hardening/20201104-234406
base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: i386-randconfig-m031-20201104 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/hv/ring_buffer.c:349 hv_ringbuffer_write() warn: inconsistent returns 'outring_info->ring_lock'.
drivers/hv/ring_buffer.c:349 hv_ringbuffer_write() warn: inconsistent returns 'flags'.
vim +349 drivers/hv/ring_buffer.c
1f6ee4e7d83586c drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-11-06 250 int hv_ringbuffer_write(struct vmbus_channel *channel,
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 251 const struct kvec *kv_list, u32 kv_count,
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 252 u64 requestid)
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 253 {
2c616a8b6bd3b51 drivers/hv/ring_buffer.c Stephen Hemminger 2017-03-04 254 int i;
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 255 u32 bytes_avail_towrite;
2c616a8b6bd3b51 drivers/hv/ring_buffer.c Stephen Hemminger 2017-03-04 256 u32 totalbytes_towrite = sizeof(u64);
66a605438146923 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 257 u32 next_write_location;
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 258 u32 old_write;
2c616a8b6bd3b51 drivers/hv/ring_buffer.c Stephen Hemminger 2017-03-04 259 u64 prev_indices;
2c616a8b6bd3b51 drivers/hv/ring_buffer.c Stephen Hemminger 2017-03-04 260 unsigned long flags;
1f6ee4e7d83586c drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-11-06 261 struct hv_ring_buffer_info *outring_info = &channel->outbound;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 262 struct vmpacket_descriptor *desc = kv_list[0].iov_base;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 263 u64 rqst_id = VMBUS_NO_RQSTOR;
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 264
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 265 if (channel->rescind)
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 266 return -ENODEV;
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 267
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 268 for (i = 0; i < kv_count; i++)
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 269 totalbytes_towrite += kv_list[i].iov_len;
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 270
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 271 spin_lock_irqsave(&outring_info->ring_lock, flags);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 272
a6341f000024cdf drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-04-02 273 bytes_avail_towrite = hv_get_bytes_to_write(outring_info);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 274
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 275 /*
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 276 * If there is only room for the packet, assume it is full.
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 277 * Otherwise, the next time around, we think the ring buffer
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 278 * is empty since the read index == write index.
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 279 */
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 280 if (bytes_avail_towrite <= totalbytes_towrite) {
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 281 ++channel->out_full_total;
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 282
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 283 if (!channel->out_full_flag) {
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 284 ++channel->out_full_first;
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 285 channel->out_full_flag = true;
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 286 }
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 287
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 288 spin_unlock_irqrestore(&outring_info->ring_lock, flags);
d2598f017f02bbc drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-08-25 289 return -EAGAIN;
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 290 }
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 291
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 292 channel->out_full_flag = false;
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 293
454f18a963cf651 drivers/staging/hv/RingBuffer.c Bill Pemberton 2009-07-27 294 /* Write to the ring buffer */
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 295 next_write_location = hv_get_next_write_location(outring_info);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 296
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 297 old_write = next_write_location;
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 298
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 299 for (i = 0; i < kv_count; i++) {
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 300 next_write_location = hv_copyto_ringbuffer(outring_info,
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 301 next_write_location,
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 302 kv_list[i].iov_base,
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 303 kv_list[i].iov_len);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 304 }
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 305
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 306 /*
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 307 * Allocate the request ID after the data has been copied into the
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 308 * ring buffer. Once this request ID is allocated, the completion
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 309 * path could find the data and free it.
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 310 */
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 311
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 312 if (desc->flags == VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED) {
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 313 rqst_id = vmbus_next_request_id(&channel->requestor, requestid);
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 314 if (rqst_id == VMBUS_RQST_ERROR) {
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 315 pr_err("No request id available\n");
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 316 return -EAGAIN;
Need to call spin_unlock_irqrestore(&outring_info->ring_lock, flags);
before returning.
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 317 }
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 318 }
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 319 desc = hv_get_ring_buffer(outring_info) + old_write;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 320 desc->trans_id = (rqst_id == VMBUS_NO_RQSTOR) ? requestid : rqst_id;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 321
454f18a963cf651 drivers/staging/hv/RingBuffer.c Bill Pemberton 2009-07-27 322 /* Set previous packet start */
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 323 prev_indices = hv_get_ring_bufferindices(outring_info);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 324
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 325 next_write_location = hv_copyto_ringbuffer(outring_info,
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 326 next_write_location,
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 327 &prev_indices,
59471438ccbebaf drivers/staging/hv/RingBuffer.c Greg Kroah-Hartman 2009-07-14 328 sizeof(u64));
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 329
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 330 /* Issue a full memory barrier before updating the write index */
dcd0eeca4454d5c drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-04-02 331 virt_mb();
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 332
454f18a963cf651 drivers/staging/hv/RingBuffer.c Bill Pemberton 2009-07-27 333 /* Now, update the write location */
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 334 hv_set_next_write_location(outring_info, next_write_location);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 335
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 336
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 337 spin_unlock_irqrestore(&outring_info->ring_lock, flags);
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 338
b103a56f80878b4 drivers/hv/ring_buffer.c Stephen Hemminger 2017-02-05 339 hv_signal_on_write(old_write, channel);
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 340
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 341 if (channel->rescind) {
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 342 if (rqst_id != VMBUS_NO_RQSTOR) {
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 343 /* Reclaim request ID to avoid leak of IDs */
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 344 vmbus_request_addr(&channel->requestor, rqst_id);
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 345 }
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 346 return -ENODEV;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 347 }
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 348
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 @349 return 0;
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 350 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37597 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v8 1/3] Drivers: hv: vmbus: Add vmbus_requestor data structure for VMBus hardening
Date: Thu, 05 Nov 2020 15:24:20 +0300 [thread overview]
Message-ID: <20201105122420.GB29398@kadam> (raw)
In-Reply-To: <20201104154027.319432-2-parri.andrea@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 12409 bytes --]
Hi Andrea,
url: https://github.com/0day-ci/linux/commits/Andrea-Parri-Microsoft/Drivers-hv-vmbus-vmbus_requestor-data-structure-for-VMBus-hardening/20201104-234406
base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: i386-randconfig-m031-20201104 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/hv/ring_buffer.c:349 hv_ringbuffer_write() warn: inconsistent returns 'outring_info->ring_lock'.
drivers/hv/ring_buffer.c:349 hv_ringbuffer_write() warn: inconsistent returns 'flags'.
vim +349 drivers/hv/ring_buffer.c
1f6ee4e7d83586c drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-11-06 250 int hv_ringbuffer_write(struct vmbus_channel *channel,
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 251 const struct kvec *kv_list, u32 kv_count,
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 252 u64 requestid)
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 253 {
2c616a8b6bd3b51 drivers/hv/ring_buffer.c Stephen Hemminger 2017-03-04 254 int i;
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 255 u32 bytes_avail_towrite;
2c616a8b6bd3b51 drivers/hv/ring_buffer.c Stephen Hemminger 2017-03-04 256 u32 totalbytes_towrite = sizeof(u64);
66a605438146923 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 257 u32 next_write_location;
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 258 u32 old_write;
2c616a8b6bd3b51 drivers/hv/ring_buffer.c Stephen Hemminger 2017-03-04 259 u64 prev_indices;
2c616a8b6bd3b51 drivers/hv/ring_buffer.c Stephen Hemminger 2017-03-04 260 unsigned long flags;
1f6ee4e7d83586c drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-11-06 261 struct hv_ring_buffer_info *outring_info = &channel->outbound;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 262 struct vmpacket_descriptor *desc = kv_list[0].iov_base;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 263 u64 rqst_id = VMBUS_NO_RQSTOR;
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 264
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 265 if (channel->rescind)
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 266 return -ENODEV;
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 267
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 268 for (i = 0; i < kv_count; i++)
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 269 totalbytes_towrite += kv_list[i].iov_len;
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 270
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 271 spin_lock_irqsave(&outring_info->ring_lock, flags);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 272
a6341f000024cdf drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-04-02 273 bytes_avail_towrite = hv_get_bytes_to_write(outring_info);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 274
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 275 /*
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 276 * If there is only room for the packet, assume it is full.
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 277 * Otherwise, the next time around, we think the ring buffer
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 278 * is empty since the read index == write index.
822f18d4d3e9d4e drivers/hv/ring_buffer.c Vitaly Kuznetsov 2015-12-14 279 */
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 280 if (bytes_avail_towrite <= totalbytes_towrite) {
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 281 ++channel->out_full_total;
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 282
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 283 if (!channel->out_full_flag) {
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 284 ++channel->out_full_first;
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 285 channel->out_full_flag = true;
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 286 }
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 287
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 288 spin_unlock_irqrestore(&outring_info->ring_lock, flags);
d2598f017f02bbc drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-08-25 289 return -EAGAIN;
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 290 }
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 291
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 292 channel->out_full_flag = false;
396ae57ef1ef978 drivers/hv/ring_buffer.c Kimberly Brown 2019-02-04 293
454f18a963cf651 drivers/staging/hv/RingBuffer.c Bill Pemberton 2009-07-27 294 /* Write to the ring buffer */
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 295 next_write_location = hv_get_next_write_location(outring_info);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 296
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 297 old_write = next_write_location;
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 298
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 299 for (i = 0; i < kv_count; i++) {
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 300 next_write_location = hv_copyto_ringbuffer(outring_info,
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 301 next_write_location,
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 302 kv_list[i].iov_base,
011a7c3cc3aa60c drivers/hv/ring_buffer.c K. Y. Srinivasan 2014-02-01 303 kv_list[i].iov_len);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 304 }
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 305
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 306 /*
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 307 * Allocate the request ID after the data has been copied into the
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 308 * ring buffer. Once this request ID is allocated, the completion
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 309 * path could find the data and free it.
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 310 */
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 311
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 312 if (desc->flags == VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED) {
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 313 rqst_id = vmbus_next_request_id(&channel->requestor, requestid);
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 314 if (rqst_id == VMBUS_RQST_ERROR) {
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 315 pr_err("No request id available\n");
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 316 return -EAGAIN;
Need to call spin_unlock_irqrestore(&outring_info->ring_lock, flags);
before returning.
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 317 }
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 318 }
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 319 desc = hv_get_ring_buffer(outring_info) + old_write;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 320 desc->trans_id = (rqst_id == VMBUS_NO_RQSTOR) ? requestid : rqst_id;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 321
454f18a963cf651 drivers/staging/hv/RingBuffer.c Bill Pemberton 2009-07-27 322 /* Set previous packet start */
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 323 prev_indices = hv_get_ring_bufferindices(outring_info);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 324
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 325 next_write_location = hv_copyto_ringbuffer(outring_info,
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 326 next_write_location,
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 327 &prev_indices,
59471438ccbebaf drivers/staging/hv/RingBuffer.c Greg Kroah-Hartman 2009-07-14 328 sizeof(u64));
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 329
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 330 /* Issue a full memory barrier before updating the write index */
dcd0eeca4454d5c drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-04-02 331 virt_mb();
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 332
454f18a963cf651 drivers/staging/hv/RingBuffer.c Bill Pemberton 2009-07-27 333 /* Now, update the write location */
2b8a912ef2713a7 drivers/staging/hv/ring_buffer.c K. Y. Srinivasan 2011-05-10 334 hv_set_next_write_location(outring_info, next_write_location);
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 335
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 336
fc8c72ebfa7547c drivers/staging/hv/ring_buffer.c Haiyang Zhang 2010-11-08 337 spin_unlock_irqrestore(&outring_info->ring_lock, flags);
98fa8cf4bcc79cb drivers/hv/ring_buffer.c K. Y. Srinivasan 2012-12-01 338
b103a56f80878b4 drivers/hv/ring_buffer.c Stephen Hemminger 2017-02-05 339 hv_signal_on_write(old_write, channel);
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 340
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 341 if (channel->rescind) {
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 342 if (rqst_id != VMBUS_NO_RQSTOR) {
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 343 /* Reclaim request ID to avoid leak of IDs */
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 344 vmbus_request_addr(&channel->requestor, rqst_id);
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 345 }
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 346 return -ENODEV;
4d6a4de24f39114 drivers/hv/ring_buffer.c Andres Beltran 2020-11-04 347 }
e7e97dd8b77ee73 drivers/hv/ring_buffer.c K. Y. Srinivasan 2016-12-07 348
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 @349 return 0;
3e7ee4902fe6996 drivers/staging/hv/RingBuffer.c Hank Janssen 2009-07-13 350 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37597 bytes --]
next prev parent reply other threads:[~2020-11-05 12:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-04 15:40 [PATCH v8 0/3] Drivers: hv: vmbus: vmbus_requestor data structure for VMBus hardening Andrea Parri (Microsoft)
2020-11-04 15:40 ` [PATCH v8 1/3] Drivers: hv: vmbus: Add " Andrea Parri (Microsoft)
2020-11-05 12:24 ` Dan Carpenter [this message]
2020-11-05 12:24 ` Dan Carpenter
2020-11-05 12:51 ` Andrea Parri
2020-11-04 15:40 ` [PATCH v8 2/3] scsi: storvsc: Use vmbus_requestor to generate transaction IDs " Andrea Parri (Microsoft)
2020-11-04 15:40 ` [PATCH v8 3/3] hv_netvsc: " Andrea Parri (Microsoft)
2020-11-04 21:43 ` Jakub Kicinski
2020-11-04 21:45 ` Jakub Kicinski
2020-11-05 3:32 ` Andrea Parri
-- strict thread matches above, loose matches on Subject: below --
2020-11-05 7:03 [PATCH v8 1/3] Drivers: hv: vmbus: Add vmbus_requestor data structure " kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201105122420.GB29398@kadam \
--to=dan.carpenter@oracle.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.