···542542 * @port_list: List of ports belonging to a SAS node543543 * @num_phys: Number of phys associated with port544544 * @marked_responding: used while refresing the sas ports545545- * @lowest_phy: lowest phy ID of current sas port546546- * @phy_mask: phy_mask of current sas port545545+ * @lowest_phy: lowest phy ID of current sas port, valid for controller port546546+ * @phy_mask: phy_mask of current sas port, valid for controller port547547 * @hba_port: HBA port entry548548 * @remote_identify: Attached device identification549549 * @rphy: SAS transport layer rphy object
+27-15
drivers/scsi/mpi3mr/mpi3mr_transport.c
···590590 * @mrioc: Adapter instance reference591591 * @mr_sas_port: Internal Port object592592 * @mr_sas_phy: Internal Phy object593593+ * @host_node: Flag to indicate this is a host_node593594 *594595 * Return: None.595596 */596597static void mpi3mr_delete_sas_phy(struct mpi3mr_ioc *mrioc,597598 struct mpi3mr_sas_port *mr_sas_port,598598- struct mpi3mr_sas_phy *mr_sas_phy)599599+ struct mpi3mr_sas_phy *mr_sas_phy, u8 host_node)599600{600601 u64 sas_address = mr_sas_port->remote_identify.sas_address;601602···606605607606 list_del(&mr_sas_phy->port_siblings);608607 mr_sas_port->num_phys--;609609- mr_sas_port->phy_mask &= ~(1 << mr_sas_phy->phy_id);610610- if (mr_sas_port->lowest_phy == mr_sas_phy->phy_id)611611- mr_sas_port->lowest_phy = ffs(mr_sas_port->phy_mask) - 1;608608+609609+ if (host_node) {610610+ mr_sas_port->phy_mask &= ~(1 << mr_sas_phy->phy_id);611611+612612+ if (mr_sas_port->lowest_phy == mr_sas_phy->phy_id)613613+ mr_sas_port->lowest_phy = ffs(mr_sas_port->phy_mask) - 1;614614+ }612615 sas_port_delete_phy(mr_sas_port->port, mr_sas_phy->phy);613616 mr_sas_phy->phy_belongs_to_port = 0;614617}···622617 * @mrioc: Adapter instance reference623618 * @mr_sas_port: Internal Port object624619 * @mr_sas_phy: Internal Phy object620620+ * @host_node: Flag to indicate this is a host_node625621 *626622 * Return: None.627623 */628624static void mpi3mr_add_sas_phy(struct mpi3mr_ioc *mrioc,629625 struct mpi3mr_sas_port *mr_sas_port,630630- struct mpi3mr_sas_phy *mr_sas_phy)626626+ struct mpi3mr_sas_phy *mr_sas_phy, u8 host_node)631627{632628 u64 sas_address = mr_sas_port->remote_identify.sas_address;633629···638632639633 list_add_tail(&mr_sas_phy->port_siblings, &mr_sas_port->phy_list);640634 mr_sas_port->num_phys++;641641- mr_sas_port->phy_mask |= (1 << mr_sas_phy->phy_id);642642- if (mr_sas_phy->phy_id < mr_sas_port->lowest_phy)643643- mr_sas_port->lowest_phy = ffs(mr_sas_port->phy_mask) - 1;635635+ if (host_node) {636636+ mr_sas_port->phy_mask |= (1 << mr_sas_phy->phy_id);637637+638638+ if (mr_sas_phy->phy_id < mr_sas_port->lowest_phy)639639+ mr_sas_port->lowest_phy = ffs(mr_sas_port->phy_mask) - 1;640640+ }644641 sas_port_add_phy(mr_sas_port->port, mr_sas_phy->phy);645642 mr_sas_phy->phy_belongs_to_port = 1;646643}···684675 if (srch_phy == mr_sas_phy)685676 return;686677 }687687- mpi3mr_add_sas_phy(mrioc, mr_sas_port, mr_sas_phy);678678+ mpi3mr_add_sas_phy(mrioc, mr_sas_port, mr_sas_phy, mr_sas_node->host_node);688679 return;689680 }690681}···745736 mpi3mr_delete_sas_port(mrioc, mr_sas_port);746737 else747738 mpi3mr_delete_sas_phy(mrioc, mr_sas_port,748748- mr_sas_phy);739739+ mr_sas_phy, mr_sas_node->host_node);749740 return;750741 }751742 }···10371028/**10381029 * mpi3mr_get_hba_port_by_id - find hba port by id10391030 * @mrioc: Adapter instance reference10401040- * @port_id - Port ID to search10311031+ * @port_id: Port ID to search10411032 *10421033 * Return: mpi3mr_hba_port reference for the matched port10431034 */···13761367 mpi3mr_sas_port_sanity_check(mrioc, mr_sas_node,13771368 mr_sas_port->remote_identify.sas_address, hba_port);1378136913791379- if (mr_sas_node->num_phys >= sizeof(mr_sas_port->phy_mask) * 8)13701370+ if (mr_sas_node->host_node && mr_sas_node->num_phys >=13711371+ sizeof(mr_sas_port->phy_mask) * 8)13801372 ioc_info(mrioc, "max port count %u could be too high\n",13811373 mr_sas_node->num_phys);13821374···13871377 (mr_sas_node->phy[i].hba_port != hba_port))13881378 continue;1389137913901390- if (i >= sizeof(mr_sas_port->phy_mask) * 8) {13801380+ if (mr_sas_node->host_node && (i >= sizeof(mr_sas_port->phy_mask) * 8)) {13911381 ioc_warn(mrioc, "skipping port %u, max allowed value is %zu\n",13921382 i, sizeof(mr_sas_port->phy_mask) * 8);13931383 goto out_fail;···13951385 list_add_tail(&mr_sas_node->phy[i].port_siblings,13961386 &mr_sas_port->phy_list);13971387 mr_sas_port->num_phys++;13981398- mr_sas_port->phy_mask |= (1 << i);13881388+ if (mr_sas_node->host_node)13891389+ mr_sas_port->phy_mask |= (1 << i);13991390 }1400139114011392 if (!mr_sas_port->num_phys) {···14051394 goto out_fail;14061395 }1407139614081408- mr_sas_port->lowest_phy = ffs(mr_sas_port->phy_mask) - 1;13971397+ if (mr_sas_node->host_node)13981398+ mr_sas_port->lowest_phy = ffs(mr_sas_port->phy_mask) - 1;1409139914101400 if (mr_sas_port->remote_identify.device_type == SAS_END_DEVICE) {14111401 tgtdev = mpi3mr_get_tgtdev_by_addr(mrioc,
+4-6
drivers/scsi/scsi_debug.c
···36513651 enum dma_data_direction dir;36523652 struct scsi_data_buffer *sdb = &scp->sdb;36533653 u8 *fsp;36543654- int i;36543654+ int i, total = 0;3655365536563656 /*36573657 * Even though reads are inherently atomic (in this driver), we expect···36883688 fsp + (block * sdebug_sector_size),36893689 sdebug_sector_size, sg_skip, do_write);36903690 sdeb_data_sector_unlock(sip, do_write);36913691- if (ret != sdebug_sector_size) {36923692- ret += (i * sdebug_sector_size);36913691+ total += ret;36923692+ if (ret != sdebug_sector_size)36933693 break;36943694- }36953694 sg_skip += sdebug_sector_size;36963695 if (++block >= sdebug_store_sectors)36973696 block = 0;36983697 }36993699- ret = num * sdebug_sector_size;37003698 sdeb_data_unlock(sip, atomic);3701369937023702- return ret;37003700+ return total;37033701}3704370237053703/* Returns number of bytes copied or -1 if error. */
+2-2
drivers/scsi/scsi_transport_fc.c
···12501250 */12511251 if (rport->port_state == FC_PORTSTATE_ONLINE)12521252 rport->port_state = port_state;12531253- else12531253+ else if (port_state != rport->port_state)12541254 return -EINVAL;12551255 } else if (port_state == FC_PORTSTATE_ONLINE) {12561256 /*···12601260 */12611261 if (rport->port_state == FC_PORTSTATE_MARGINAL)12621262 rport->port_state = port_state;12631263- else12631263+ else if (port_state != rport->port_state)12641264 return -EINVAL;12651265 } else12661266 return -EINVAL;
+1-1
drivers/scsi/wd33c93.c
···831831 /* construct an IDENTIFY message with correct disconnect bit */832832833833 hostdata->outgoing_msg[0] = IDENTIFY(0, cmd->device->lun);834834- if (scsi_pointer->phase)834834+ if (WD33C93_scsi_pointer(cmd)->phase)835835 hostdata->outgoing_msg[0] |= 0x40;836836837837 if (hostdata->sync_stat[cmd->device->id] == SS_FIRST) {