[scsi:misc 327/330] drivers//scsi/storvsc_drv.c:1313:4: error: implicit declaration of function 'for_each_cpu_wrap'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git misc
head:   16a628faa63c8149d9a8f433e5c6548f6cff98e4
commit: 2439bec3bf084ab6cbc69a66797a4612042be6ca [327/330] scsi: storvsc: Spread interrupts when picking a channel for I/O requests
config: x86_64-randconfig-s1-02071932 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
        git checkout 2439bec3bf084ab6cbc69a66797a4612042be6ca
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers//scsi/storvsc_drv.c: In function 'storvsc_do_io':
>> drivers//scsi/storvsc_drv.c:1313:4: error: implicit declaration of function 'for_each_cpu_wrap' [-Werror=implicit-function-declaration]
       for_each_cpu_wrap(tgt_cpu, &alloced_mask,
       ^~~~~~~~~~~~~~~~~
   drivers//scsi/storvsc_drv.c:1314:40: error: expected ';' before '{' token
         outgoing_channel->target_cpu + 1) {
                                           ^
   cc1: some warnings being treated as errors

vim +/for_each_cpu_wrap +1313 drivers//scsi/storvsc_drv.c

  1280	
  1281	
  1282	static int storvsc_do_io(struct hv_device *device,
  1283				 struct storvsc_cmd_request *request, u16 q_num)
  1284	{
  1285		struct storvsc_device *stor_device;
  1286		struct vstor_packet *vstor_packet;
  1287		struct vmbus_channel *outgoing_channel;
  1288		int ret = 0;
  1289		struct cpumask alloced_mask;
  1290		int tgt_cpu;
  1291	
  1292		vstor_packet = &request->vstor_packet;
  1293		stor_device = get_out_stor_device(device);
  1294	
  1295		if (!stor_device)
  1296			return -ENODEV;
  1297	
  1298	
  1299		request->device  = device;
  1300		/*
  1301		 * Select an an appropriate channel to send the request out.
  1302		 */
  1303	
  1304		if (stor_device->stor_chns[q_num] != NULL) {
  1305			outgoing_channel = stor_device->stor_chns[q_num];
  1306			if (outgoing_channel->target_cpu == smp_processor_id()) {
  1307				/*
  1308				 * Ideally, we want to pick a different channel if
  1309				 * available on the same NUMA node.
  1310				 */
  1311				cpumask_and(&alloced_mask, &stor_device->alloced_cpus,
  1312					    cpumask_of_node(cpu_to_node(q_num)));
> 1313				for_each_cpu_wrap(tgt_cpu, &alloced_mask,
  1314						outgoing_channel->target_cpu + 1) {
  1315					if (tgt_cpu != outgoing_channel->target_cpu) {
  1316						outgoing_channel =
  1317						stor_device->stor_chns[tgt_cpu];
  1318						break;
  1319					}
  1320				}
  1321			}
  1322		} else {
  1323			outgoing_channel = get_og_chn(stor_device, q_num);
  1324		}
  1325	
  1326	
  1327		vstor_packet->flags |= REQUEST_COMPLETION_FLAG;
  1328	
  1329		vstor_packet->vm_srb.length = (sizeof(struct vmscsi_request) -
  1330						vmscsi_size_delta);
  1331	
  1332	
  1333		vstor_packet->vm_srb.sense_info_length = sense_buffer_size;
  1334	
  1335	
  1336		vstor_packet->vm_srb.data_transfer_length =
  1337		request->payload->range.len;
  1338	
  1339		vstor_packet->operation = VSTOR_OPERATION_EXECUTE_SRB;
  1340	
  1341		if (request->payload->range.len) {
  1342	
  1343			ret = vmbus_sendpacket_mpb_desc(outgoing_channel,
  1344					request->payload, request->payload_sz,
  1345					vstor_packet,
  1346					(sizeof(struct vstor_packet) -
  1347					vmscsi_size_delta),
  1348					(unsigned long)request);
  1349		} else {
  1350			ret = vmbus_sendpacket(outgoing_channel, vstor_packet,
  1351				       (sizeof(struct vstor_packet) -
  1352					vmscsi_size_delta),
  1353				       (unsigned long)request,
  1354				       VM_PKT_DATA_INBAND,
  1355				       VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
  1356		}
  1357	
  1358		if (ret != 0)
  1359			return ret;
  1360	
  1361		atomic_inc(&stor_device->num_outstanding_req);
  1362	
  1363		return ret;
  1364	}
  1365	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux