16 Jul, 2020

1 commit

  • According to 'include/scsi/scsi_transport_fc.h':

    "Attributes are based on HBAAPI V2.0 definitions"

    ... so it seems sane to match the 'HBA Attribute Length' to them.

    If we don't, the compiler complains that the copied data will be truncated.

    Fixes the following W=1 kernel build warning(s):

    In file included from include/linux/bitmap.h:9,
    from include/linux/cpumask.h:12,
    from include/linux/smp.h:13,
    from include/linux/percpu.h:7,
    from include/scsi/libfc.h:13,
    from drivers/scsi/libfc/fc_elsct.c:17:
    In function ‘strncpy’,
    inlined from ‘fc_ct_ms_fill.constprop’ at include/scsi/fc_encode.h:263:3:
    include/linux/string.h:297:30: warning: ‘__builtin_strncpy’ output may be truncated copying 64 bytes from a string of length 79 [-Wstringop-truncation]
    297 | #define __underlying_strncpy __builtin_strncpy
    | ^
    include/linux/string.h:307:9: note: in expansion of macro ‘__underlying_strncpy’
    307 | return __underlying_strncpy(p, q, size);
    | ^~~~~~~~~~~~~~~~~~~~
    In function ‘strncpy’,
    inlined from ‘fc_ct_ms_fill.constprop’ at include/scsi/fc_encode.h:275:3:
    include/linux/string.h:297:30: warning: ‘__builtin_strncpy’ output may be truncated copying 64 bytes from a string of length 79 [-Wstringop-truncation]
    297 | #define __underlying_strncpy __builtin_strncpy
    | ^
    include/linux/string.h:307:9: note: in expansion of macro ‘__underlying_strncpy’
    307 | return __underlying_strncpy(p, q, size);
    | ^~~~~~~~~~~~~~~~~~~~

    Link: https://lore.kernel.org/r/20200713074645.126138-3-lee.jones@linaro.org
    Reviewed-by: Hannes Reinecke
    Signed-off-by: Lee Jones
    Signed-off-by: Martin K. Petersen

    Lee Jones
     

12 Jul, 2019

1 commit

  • Pull SCSI updates from James Bottomley:
    "This is mostly update of the usual drivers: qla2xxx, hpsa, lpfc, ufs,
    mpt3sas, ibmvscsi, megaraid_sas, bnx2fc and hisi_sas as well as the
    removal of the osst driver (I heard from Willem privately that he
    would like the driver removed because all his test hardware has
    failed). Plus number of minor changes, spelling fixes and other
    trivia.

    The big merge conflict this time around is the SPDX licence tags.
    Following discussion on linux-next, we believe our version to be more
    accurate than the one in the tree, so the resolution is to take our
    version for all the SPDX conflicts"

    Note on the SPDX license tag conversion conflicts: the SCSI tree had
    done its own SPDX conversion, which in some cases conflicted with the
    treewide ones done by Thomas & co.

    In almost all cases, the conflicts were purely syntactic: the SCSI tree
    used the old-style SPDX tags ("GPL-2.0" and "GPL-2.0+") while the
    treewide conversion had used the new-style ones ("GPL-2.0-only" and
    "GPL-2.0-or-later").

    In these cases I picked the new-style one.

    In a few cases, the SPDX conversion was actually different, though. As
    explained by James above, and in more detail in a pre-pull-request
    thread:

    "The other problem is actually substantive: In the libsas code Luben
    Tuikov originally specified gpl 2.0 only by dint of stating:

    * This file is licensed under GPLv2.

    In all the libsas files, but then muddied the water by quoting GPLv2
    verbatim (which includes the or later than language). So for these
    files Christoph did the conversion to v2 only SPDX tags and Thomas
    converted to v2 or later tags"

    So in those cases, where the spdx tag substantially mattered, I took the
    SCSI tree conversion of it, but then also took the opportunity to turn
    the old-style "GPL-2.0" into a new-style "GPL-2.0-only" tag.

    Similarly, when there were whitespace differences or other differences
    to the comments around the copyright notices, I took the version from
    the SCSI tree as being the more specific conversion.

    Finally, in the spdx conversions that had no conflicts (because the
    treewide ones hadn't been done for those files), I just took the SCSI
    tree version as-is, even if it was old-style. The old-style conversions
    are perfectly valid, even if the "-only" and "-or-later" versions are
    perhaps more descriptive.

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (185 commits)
    scsi: qla2xxx: move IO flush to the front of NVME rport unregistration
    scsi: qla2xxx: Fix NVME cmd and LS cmd timeout race condition
    scsi: qla2xxx: on session delete, return nvme cmd
    scsi: qla2xxx: Fix kernel crash after disconnecting NVMe devices
    scsi: megaraid_sas: Update driver version to 07.710.06.00-rc1
    scsi: megaraid_sas: Introduce various Aero performance modes
    scsi: megaraid_sas: Use high IOPS queues based on IO workload
    scsi: megaraid_sas: Set affinity for high IOPS reply queues
    scsi: megaraid_sas: Enable coalescing for high IOPS queues
    scsi: megaraid_sas: Add support for High IOPS queues
    scsi: megaraid_sas: Add support for MPI toolbox commands
    scsi: megaraid_sas: Offload Aero RAID5/6 division calculations to driver
    scsi: megaraid_sas: RAID1 PCI bandwidth limit algorithm is applicable for only Ventura
    scsi: megaraid_sas: megaraid_sas: Add check for count returned by HOST_DEVICE_LIST DCMD
    scsi: megaraid_sas: Handle sequence JBOD map failure at driver level
    scsi: megaraid_sas: Don't send FPIO to RL Bypass queue
    scsi: megaraid_sas: In probe context, retry IOC INIT once if firmware is in fault
    scsi: megaraid_sas: Release Mutex lock before OCR in case of DCMD timeout
    scsi: megaraid_sas: Call disable_irq from process IRQ poll
    scsi: megaraid_sas: Remove few debug counters from IO path
    ...

    Linus Torvalds
     

05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms and conditions of the gnu general public license
    version 2 as published by the free software foundation this program
    is distributed in the hope it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details you should have received a copy of the gnu general
    public license along with this program if not write to the free
    software foundation inc 51 franklin st fifth floor boston ma 02110
    1301 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 111 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190530000436.567572064@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

21 May, 2019

1 commit


10 May, 2017

1 commit

  • Regularly, when a new header is created in include/uapi/, the developer
    forgets to add it in the corresponding Kbuild file. This error is usually
    detected after the release is out.

    In fact, all headers under uapi directories should be exported, thus it's
    useless to have an exhaustive list.

    After this patch, the following files, which were not exported, are now
    exported (with make headers_install_all):
    asm-arc/kvm_para.h
    asm-arc/ucontext.h
    asm-blackfin/shmparam.h
    asm-blackfin/ucontext.h
    asm-c6x/shmparam.h
    asm-c6x/ucontext.h
    asm-cris/kvm_para.h
    asm-h8300/shmparam.h
    asm-h8300/ucontext.h
    asm-hexagon/shmparam.h
    asm-m32r/kvm_para.h
    asm-m68k/kvm_para.h
    asm-m68k/shmparam.h
    asm-metag/kvm_para.h
    asm-metag/shmparam.h
    asm-metag/ucontext.h
    asm-mips/hwcap.h
    asm-mips/reg.h
    asm-mips/ucontext.h
    asm-nios2/kvm_para.h
    asm-nios2/ucontext.h
    asm-openrisc/shmparam.h
    asm-parisc/kvm_para.h
    asm-powerpc/perf_regs.h
    asm-sh/kvm_para.h
    asm-sh/ucontext.h
    asm-tile/shmparam.h
    asm-unicore32/shmparam.h
    asm-unicore32/ucontext.h
    asm-x86/hwcap2.h
    asm-xtensa/kvm_para.h
    drm/armada_drm.h
    drm/etnaviv_drm.h
    drm/vgem_drm.h
    linux/aspeed-lpc-ctrl.h
    linux/auto_dev-ioctl.h
    linux/bcache.h
    linux/btrfs_tree.h
    linux/can/vxcan.h
    linux/cifs/cifs_mount.h
    linux/coresight-stm.h
    linux/cryptouser.h
    linux/fsmap.h
    linux/genwqe/genwqe_card.h
    linux/hash_info.h
    linux/kcm.h
    linux/kcov.h
    linux/kfd_ioctl.h
    linux/lightnvm.h
    linux/module.h
    linux/nbd-netlink.h
    linux/nilfs2_api.h
    linux/nilfs2_ondisk.h
    linux/nsfs.h
    linux/pr.h
    linux/qrtr.h
    linux/rpmsg.h
    linux/sched/types.h
    linux/sed-opal.h
    linux/smc.h
    linux/smc_diag.h
    linux/stm.h
    linux/switchtec_ioctl.h
    linux/vfio_ccw.h
    linux/wil6210_uapi.h
    rdma/bnxt_re-abi.h

    Note that I have removed from this list the files which are generated in every
    exported directories (like .install or .install.cmd).

    Thanks to Julien Floret for the tip to get all
    subdirs with a pure makefile command.

    For the record, note that exported files for asm directories are a mix of
    files listed by:
    - include/uapi/asm-generic/Kbuild.asm;
    - arch//include/uapi/asm/Kbuild;
    - arch//include/asm/Kbuild.

    Signed-off-by: Nicolas Dichtel
    Acked-by: Daniel Vetter
    Acked-by: Russell King
    Acked-by: Mark Salter
    Acked-by: Michael Ellerman (powerpc)
    Signed-off-by: Masahiro Yamada

    Nicolas Dichtel
     

14 Jul, 2016

1 commit


05 Sep, 2013

1 commit


08 Jan, 2013

1 commit


07 Oct, 2012

1 commit

  • In LUN RESET testing involving NetApp targets, it is observed that LUN
    RESET is failing. The fc_fcp_resp() is not completing the completion
    for the LUN RESET task since fc_fcp_resp assumes that the FCP_RSP_INFO
    is 8 bytes with the 4 byte reserved field, where in case of NetApp targets
    the FCP_RSP to LUN RESET only has 4 bytes of FCP_RSP_INFO. This leads
    fc_fcp_resp to error out w/o completing the task completion, eventually
    causing LUN RESET to be escalated to host reset, which is not very nice.

    Per FCP-3 r04, clause 9.5.15 and Table 23, the FCP_RSP_INFO field can be either
    4 bytes or 8 bytes, with the last 4 bytes as "Reserved (if any)". Therefore it
    is valid to have 4 bytes FCP_RSP_INFO like some of the NetApp targets behave.
    Fixing this by validating the FCP_RSP_INFO against both the two spec allowed
    length.

    Reported-by: Frank Zhang
    Signed-off-by: Yi Zou
    Tested-by: Ross Brattain
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Yi Zou
     

23 Mar, 2012

1 commit

  • SCSI updates from James Bottomley:
    "The update includes the usual assortment of driver updates (lpfc,
    qla2xxx, qla4xxx, bfa, bnx2fc, bnx2i, isci, fcoe, hpsa) plus a huge
    amount of infrastructure work in the SAS library and transport class
    as well as an iSCSI update. There's also a new SCSI based virtio
    driver."

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (177 commits)
    [SCSI] qla4xxx: Update driver version to 5.02.00-k15
    [SCSI] qla4xxx: trivial cleanup
    [SCSI] qla4xxx: Fix sparse warning
    [SCSI] qla4xxx: Add support for multiple session per host.
    [SCSI] qla4xxx: Export CHAP index as sysfs attribute
    [SCSI] scsi_transport: Export CHAP index as sysfs attribute
    [SCSI] qla4xxx: Add support to display CHAP list and delete CHAP entry
    [SCSI] iscsi_transport: Add support to display CHAP list and delete CHAP entry
    [SCSI] pm8001: fix endian issue with code optimization.
    [SCSI] pm8001: Fix possible racing condition.
    [SCSI] pm8001: Fix bogus interrupt state flag issue.
    [SCSI] ipr: update PCI ID definitions for new adapters
    [SCSI] qla2xxx: handle default case in qla2x00_request_firmware()
    [SCSI] isci: improvements in driver unloading routine
    [SCSI] isci: improve phy event warnings
    [SCSI] isci: debug, provide state-enum-to-string conversions
    [SCSI] scsi_transport_sas: 'enable' phys on reset
    [SCSI] libsas: don't recover end devices attached to disabled phys
    [SCSI] libsas: fixup target_port_protocols for expanders that don't report sata
    [SCSI] libsas: set attached device type and target protocols for local phys
    ...

    Linus Torvalds
     

26 Feb, 2012

1 commit

  • This allows us to use scsilun_to_int without an ugly cast.

    Fix up places that use scsilun_to_int on fcp->fc_lun accordingly.

    In fc target, this leaves ft_cmd.lun unused, so remove it.

    Signed-off-by: Andy Grover
    Cc: Christoph Hellwig
    Cc: Kiran Patil
    Cc: James Bottomley
    Signed-off-by: Nicholas Bellinger

    Andy Grover
     

19 Feb, 2012

1 commit

  • This patch adds support for Fabric Device Management
    Interface as per FC-GS-4 spec. in libfc. Any driver
    making use of libfc can enable fdmi state machine
    for a given lport.

    If lport has enabled FDMI support the lport state
    machine will transition into FDMI after completing
    the DNS states and before entering the SCR state.
    The FDMI state transition is such that if there is an
    error, it won't stop the lport state machine from
    transitioning and the it will behave as if there was
    no FDMI support.

    The FDMI HBA attributes are registed with the Management
    server via Register HBA (RHBA) command and the port
    attributes are reigstered using the Register Port(RPA)
    command.

    Signed-off-by: Neerav Parikh
    Tested-by: Ross Brattain
    Acked-by: Robert Love
    Signed-off-by: James Bottomley

    Neerav Parikh
     

31 Mar, 2011

1 commit


26 Feb, 2011

1 commit


02 Nov, 2010

1 commit

  • "gadget", "through", "command", "maintain", "maintain", "controller", "address",
    "between", "initiali[zs]e", "instead", "function", "select", "already",
    "equal", "access", "management", "hierarchy", "registration", "interest",
    "relative", "memory", "offset", "already",

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Jiri Kosina

    Uwe Kleine-König
     

28 Jul, 2010

4 commits

  • The FC-BB-6 committee is proposing a new FIP usage model called
    VN_port to VN_port mode. It allows VN_ports to discover each other
    over a loss-free L2 Ethernet without any FCF or Fibre-channel fabric
    services. This is point-to-multipoint. There is also a variant
    of this called point-to-point which provides for making sure there
    is just one pair of ports operating over the Ethernet fabric.

    This patch defines the new message type and subtypes as well as
    one new descriptor type used by VN2VN mode.

    These are all still at the proposed stage and subject to change.

    Signed-off-by: Joe Eykholt
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Joe Eykholt
     
  • The FIP proposal for VN_port to VN_port point-to-multipoint
    operation requires a FLOGI be sent to each remote port.
    The FLOGI is sent with the assigned S_ID and D_IDs of the
    local and remote ports. This and the response get
    FIP-encapsulated for Ethernet.

    Add FLOGI state to the remote port state machine.
    This will be skipped if not in point-to-multipoint mode.

    To reduce a little duplication between PLOGI and FLOGI
    response handling, added fc_rport_login_complete(), which
    handles the parameters for the rdata struct.

    Signed-off-by: Joe Eykholt
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Joe Eykholt
     
  • Resubmitting after incorporating Joe's review comment.

    Unsolicited PRLO request is now handled by sending LS_ACC,
    and then relogin to the remote port if an N-port login
    session exists for that remote port.

    Note that this patch should be applied on top of Joe Eykholt's
    "Fix remote port restart problem" patch.

    Signed-off-by: Bhanu Prakash Gollapudi
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Bhanu Prakash Gollapudi
     
  • Some old comments in fc_fcoe.h say TBD long after the
    standard has been passed by T11. Clean them up.

    Signed-off-by: Joe Eykholt
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Joe Eykholt
     

11 Apr, 2010

1 commit


05 Dec, 2009

8 commits

  • While the target reset task management function has been deprecated in
    newer specs, it is still in use by SCSI FC drivers and there is no
    real replacement. Add the target reset flag to the FCP header file to
    allow usage of this definition in SCSI FC drivers.

    Reviewed-by: Swen Schillig
    Signed-off-by: Christof Schmitt
    Signed-off-by: James Bottomley

    Christof Schmitt
     
  • Add struct fcoe_fc_els_lesb as described in FC-BB-5 LESB for FCoE. It has
    the same size as LESB defined in FC-FS-3 (struct fc_els_lesb) but members
    have different meanings according to FC-BB-5.

    Signed-off-by: Yi Zou
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Yi Zou
     
  • When the D bit is set if the FKA_ADV_Period of the FIP Discovery
    Advertisement, the ENode should not transmit period ENode FIP Keep Alive and
    VN_Port FIP Keep Alive (FC-BB-5 Rev2, 7.8.3.13).

    Note that fcf->flags is taken directly from the fip_header, I am claiming one
    bit for the purpose of the FIP_FKA_Period D bit as FIP_FL_FK_ADV_B, and use
    FIP_HEADER_FLAGS as bitmask for bits used in fip_header.

    Signed-off-by: Yi Zou
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Yi Zou
     
  • Customers and certification tests have pointed out that we don't
    show up on the switch management software as an initiator.

    On some MDS switches 'show fcns database' command shows libfc
    initiators as 'fcp' not 'fcp:init' like other initiators.

    On others switches, I think the switch gets the features by doing a PRLI,
    but it may be only certain models or under certain configurations.

    Fix this by registering our FC4 features with the RFF_ID CT request
    after local port login and after the RFT_ID.

    Signed-off-by: Joe Eykholt
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Joe Eykholt
     
  • Export fc_els.h, fc_fs.h, fc_gs.h and fc_ns.h so that they
    may be used by applications.

    This will be needed for FC Passthrough applications like fcping,
    but could be used by other applications.

    Fix to include to exported files provided by
    Chris Leech .

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love
     
  • Register the fc_host symbolic name as the symbolic port name
    with the fabric name server.

    Signed-off-by: Chris Leech
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Chris Leech
     
  • Register the fc_host symbolic name as the symbolic node name
    with the fabric name server.

    Signed-off-by: Chris Leech
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Chris Leech
     
  • Add FDISC ELS handling to libfc and libfcoe, treat it the same as FLOGI where
    appropriate.

    Add checking for NPIV support in the FLOGI LS_ACC service parameters.

    Signed-off-by: Chris Leech
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Chris Leech
     

21 Sep, 2009

1 commit


11 Sep, 2009

1 commit


09 Jun, 2009

1 commit


27 Apr, 2009

1 commit

  • When building with a .config generated from 'make allmodconfig'
    some build warnings are generated. This patch corrects the warnings,
    adds a FC_FID_NONE (= 0) enumeration for FC-IDs and cleans up one
    variable naming to meet our variable naming conventions. For example,
    fc_lport's should be named "lport," not "lp."

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love
     

03 Apr, 2009

1 commit


14 Mar, 2009

1 commit


10 Mar, 2009

1 commit


07 Mar, 2009

1 commit

  • This allows any rport ELS to retry on LS_RJT.

    The rport error handling would only retry on resource allocation failures
    and exchange timeouts. I have a target that will occasionally reject PLOGI
    when we do a quick LOGO/PLOGI. When a critical ELS was rejected, libfc would
    fail silently leaving the rport in a dead state.

    The retry count and delay are managed by fc_rport_error_retry. If the retry
    count is exceeded fc_rport_error will be called. When retrying is not the
    correct course of action, fc_rport_error can be called directly.

    Signed-off-by: Chris Leech
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Chris Leech
     

30 Dec, 2008

1 commit