Merge branch 'fixes' into misc
[sfrench/cifs-2.6.git] / drivers / scsi / storvsc_drv.c
index 3b3d1d050cacaa3d83dc615e29691ccc2c5de87f..8c51d628b52edfd7e891182919fab16b469b0f3c 100644 (file)
@@ -1311,7 +1311,8 @@ static int storvsc_do_io(struct hv_device *device,
                         */
                        cpumask_and(&alloced_mask, &stor_device->alloced_cpus,
                                    cpumask_of_node(cpu_to_node(q_num)));
-                       for_each_cpu(tgt_cpu, &alloced_mask) {
+                       for_each_cpu_wrap(tgt_cpu, &alloced_mask,
+                                       outgoing_channel->target_cpu + 1) {
                                if (tgt_cpu != outgoing_channel->target_cpu) {
                                        outgoing_channel =
                                        stor_device->stor_chns[tgt_cpu];
@@ -1657,7 +1658,7 @@ static struct scsi_host_template scsi_driver = {
        .eh_timed_out =         storvsc_eh_timed_out,
        .slave_alloc =          storvsc_device_alloc,
        .slave_configure =      storvsc_device_configure,
-       .cmd_per_lun =          255,
+       .cmd_per_lun =          2048,
        .this_id =              -1,
        .use_clustering =       ENABLE_CLUSTERING,
        /* Make sure we dont get a sg segment crosses a page boundary */
@@ -1834,8 +1835,10 @@ static int storvsc_probe(struct hv_device *device,
                fc_host_node_name(host) = stor_device->node_name;
                fc_host_port_name(host) = stor_device->port_name;
                stor_device->rport = fc_remote_port_add(host, 0, &ids);
-               if (!stor_device->rport)
+               if (!stor_device->rport) {
+                       ret = -ENOMEM;
                        goto err_out4;
+               }
        }
 #endif
        return 0;