11 Aug, 2010

1 commit

  • Commit 9e4f5e29 ("FC Pass Thru support") exported a number of header files
    in include/scsi to user space, but didn't change the uX types to the
    userspace-compatible __uX types. Without that you'll get compile errors
    when including them - E.G.:

    include/scsi/scsi.h:145: error: expected specifier-qualifier-list before `u8'

    Signed-off-by: Peter Korsgaard
    Cc: Boaz Harrosh
    Cc: James Smart
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Korsgaard
     

04 Oct, 2008

1 commit

  • This patch adds scsi netlink recieve and event support for transport
    and scsi LLDD's. It is a reimplementation of the patch posted last
    week by David Somayajulu.
    http://marc.info/?l=linux-scsi&m=121745486221819&w=2

    There are a few things done differently:

    - Transport support is included

    - Event delivery is included

    - The vendor message is now its own unique message type, considered
    part of the generic "SCSI Transport".

    - LLDD entry points are now registered rather than included in the
    scsi_host_template.

    Background: When I started to implement the event handler via template,
    I had to either: muck up scsi_add_host and scsi_remove_host; or have
    the event handler search all possible shosts. Neither was acceptable.
    Moving to a registration solves this, and also limits the scope of
    the changes to something that could be backported to a distro without
    breaking an already-released-distro kabi. However, I admit it isn't
    as elegant, as the passing of the LLDD host template in the
    registration and the complexity around dynamic add/remove shows.

    - The receive path was augmented to require a unique identifier for
    the LLDD before the message was allowed to be handed off to the
    driver. Given how quickly very fatal errors occur if there's msg
    mismatches (which I saw in testing my own tools :), I believe this
    to be a very good thing. The id plays off the vendor id scheme already
    introduced for the vendor unique event messages used by FC.
    Additionally, the id use as the basis of the registration/deregistration.

    - Send assist functions, for both the transport and LLDDs are included.

    [fujita.tomonori@lab.ntt.co.jp: fix missing cast]
    Signed-off-by: James Smart
    Signed-off-by: James Bottomley

    James Smart
     

03 Sep, 2006

2 commits

  • During discussions with Mike Christie, I became convinced that we needed
    a larger vendor id. This patch extends the id from 32 to 64 bits.

    This applies on top of the prior patches that add SCSI transport events
    via netlink.

    Signed-off-by: James Smart
    Signed-off-by: James Bottomley

    James Smart
     
  • This patch formally adds support for the posting of FC events via netlink.
    It is a followup to the original RFC at:
    http://marc.theaimsgroup.com/?l=linux-scsi&m=114530667923464&w=2
    and the initial posting at:
    http://marc.theaimsgroup.com/?l=linux-scsi&m=115507374832500&w=2

    The patch has been updated to optimize the send path, per the discussions
    in the initial posting.

    Per discussions at the Storage Summit and at OLS, we are to use netlink for
    async events from transports. Also per discussions, to avoid a netlink
    protocol per transport, I've create a single NETLINK_SCSITRANSPORT protocol,
    which can then be used by all transports.

    This patch:
    - Creates new files scsi_netlink.c and scsi_netlink.h, which contains the
    single and shared definitions for the SCSI Transport. It is tied into the
    base SCSI subsystem intialization.
    Contains a single interface routine, scsi_send_transport_event(), for a
    transport to send an event (via multicast to a protocol specific group).
    - Creates a new scsi_netlink_fc.h file, which contains the FC netlink event
    messages
    - Adds 3 new routines to the fc transport:
    fc_get_event_number() - to get a FC event #
    fc_host_post_event() - to send a simple FC event (32 bits of data)
    fc_host_post_vendor_event() - to send a Vendor unique event, with
    arbitrary amounts of data.

    Note: the separation of event number allows for a LLD to send a standard
    event, followed by vendor-specific data for the event.

    Note: This patch assumes 2 prior fc transport patches have been installed:
    http://marc.theaimsgroup.com/?l=linux-scsi&m=115555807316329&w=2
    http://marc.theaimsgroup.com/?l=linux-scsi&m=115581614930261&w=2

    Sorry - next time I'll do something like making these individual
    patches of the same posting when I know they'll be posted closely
    together.

    Signed-off-by: James Smart

    Tidy up configuration not to make SCSI always select NET

    Signed-off-by: James Bottomley

    James Smart