Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[SCSI] bfa: Fix to set vport FC host sysfs entries

Made changes to set the fc_host sysfs entries supported_speeds,
supported_classes etc., during the vport creation from the
FC transport template.

Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>

authored by

Krishna Gudipati and committed by
James Bottomley
6192bd7c e91506db

+19 -1
+17
drivers/scsi/bfa/bfad_attr.c
··· 426 426 vshost = vport->drv_port.im_port->shost; 427 427 fc_host_node_name(vshost) = wwn_to_u64((u8 *)&port_cfg.nwwn); 428 428 fc_host_port_name(vshost) = wwn_to_u64((u8 *)&port_cfg.pwwn); 429 + fc_host_supported_classes(vshost) = FC_COS_CLASS3; 430 + 431 + memset(fc_host_supported_fc4s(vshost), 0, 432 + sizeof(fc_host_supported_fc4s(vshost))); 433 + 434 + /* For FCP type 0x08 */ 435 + if (supported_fc4s & BFA_LPORT_ROLE_FCP_IM) 436 + fc_host_supported_fc4s(vshost)[2] = 1; 437 + 438 + /* For fibre channel services type 0x20 */ 439 + fc_host_supported_fc4s(vshost)[7] = 1; 440 + 441 + fc_host_supported_speeds(vshost) = 442 + bfad_im_supported_speeds(&bfad->bfa); 443 + fc_host_maxframe_size(vshost) = 444 + bfa_fcport_get_maxfrsize(&bfad->bfa); 445 + 429 446 fc_vport->dd_data = vport; 430 447 vport->drv_port.im_port->fc_vport = fc_vport; 431 448 } else if (rc == BFA_STATUS_INVALID_WWN)
+1 -1
drivers/scsi/bfa/bfad_im.c
··· 987 987 return 0; 988 988 } 989 989 990 - static u32 990 + u32 991 991 bfad_im_supported_speeds(struct bfa_s *bfa) 992 992 { 993 993 struct bfa_ioc_attr_s *ioc_attr;
+1
drivers/scsi/bfa/bfad_im.h
··· 37 37 struct bfad_im_port_s *im_port, struct device *dev); 38 38 void bfad_im_scsi_host_free(struct bfad_s *bfad, 39 39 struct bfad_im_port_s *im_port); 40 + u32 bfad_im_supported_speeds(struct bfa_s *bfa); 40 41 41 42 #define MAX_FCP_TARGET 1024 42 43 #define MAX_FCP_LUN 16384