)]}'
{
  "log": [
    {
      "commit": "5f0e385fdafb7d6c8ded6464fa6421c735d96caf",
      "tree": "f589124e9cf33dc10deb6084456e68245f6dbea5",
      "parents": [
        "ba9cd5d095b42271588c20ccd6ddd561d0e4cc1e"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Nov 30 16:20:18 2010 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Tue Dec 21 12:24:34 2010 -0600"
      },
      "message": "[SCSI] libfc: fix statistics for FCP input/output megabytes\n\nThe statistics for InputMegabytes and OutputMegabytes are\nmisnamed.  They\u0027re accumulating bytes, not megabytes.\n\nThe statistic returned via /sys must be in megabytes, however,\nwhich is what the HBA-API wants.  The FCP code needs to accumulate\nit in bytes and then divide by 1,000,000 (not 2^20) before it\npresented via sysfs.\n\nThis affects fcoe.ko only, not fnic.  The fnic driver\ncorrectly by accumulating bytes and then converts to megabytes.\n\nI checked that libhbalinux is using the /sys file directly without\nconversion.\n\nBTW, qla2xxx does divide by 2^20, which I\u0027m not fixing here.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "05fee645e96e732a79ad083cab8ddd4efd108e2c",
      "tree": "597d8d29d6f53261ebd46b3a925187075482b426",
      "parents": [
        "e0883a3c3e7766b390971a49bf728004816c9520"
      ],
      "author": {
        "name": "john fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Tue Nov 30 16:18:49 2010 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Tue Dec 21 12:24:22 2010 -0600"
      },
      "message": "[SCSI] libfc: remove tgt_flags from fc_fcp_pkt struct\n\nWe can easily remove the tgt_flags from fc_fcp_pkt struct\nand use rpriv-\u003etgt_flags directly where needed.\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "f281233d3eba15fb225d21ae2e228fd4553d824a",
      "tree": "51134454ba8acb558735f90be5540f7d756483e3",
      "parents": [
        "bdbd01ac444bffb3c9aefed3059d12554059b320"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Nov 16 02:10:29 2010 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 16 13:33:23 2010 -0800"
      },
      "message": "SCSI host lock push-down\n\nMove the mid-layer\u0027s -\u003equeuecommand() invocation from being locked\nwith the host lock to being unlocked to facilitate speeding up the\ncritical path for drivers who don\u0027t need this lock taken anyway.\n\nThe patch below presents a simple SCSI host lock push-down as an\nequivalent transformation.  No locking or other behavior should change\nwith this patch.  All existing bugs and locking orders are preserved.\n\nAdditionally, add one parameter to queuecommand,\n\tstruct Scsi_Host *\nand remove one parameter from queuecommand,\n\tvoid (*done)(struct scsi_cmnd *)\n\nScsi_Host* is a convenient pointer that most host drivers need anyway,\nand \u0027done\u0027 is redundant to struct scsi_cmnd-\u003escsi_done.\n\nMinimal code disturbance was attempted with this change.  Most drivers\nneeded only two one-line modifications for their host lock push-down.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c531b9b49b146e1535dbed006d15e58f4f528f7e",
      "tree": "85da9abe1a8b169f578312d8904a8075b91eebc5",
      "parents": [
        "8b7ac2bb07bbadb0636f21f51564e6d363bb6d20"
      ],
      "author": {
        "name": "Bhanu Prakash Gollapudi",
        "email": "bprakash@broadcom.com",
        "time": "Fri Oct 08 17:12:36 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Oct 25 15:11:37 2010 -0500"
      },
      "message": "[SCSI] libfc: Do not let disc work cancel itself\n\nWhen number of NPIV ports created are greater than the xids\nallocated per pool -- for eg., creating 255 NPIV ports on a\nsystem with nr_cpu_ids of 32, with each pool containing 128\nxids -- and then generating a link event - for eg.,\nshutdown/no shutdown -- on the switch port causes the hang\nwith the following stack trace.\n\nCall Trace:\nschedule_timeout+0x19d/0x230\nwait_for_common+0xc0/0x170\n__cancel_work_timer+0xcf/0x1b0\nfc_disc_stop+0x16/0x30 [libfc]\nfc_lport_reset_locked+0x47/0x90 [libfc]\nfc_lport_enter_reset+0x67/0xe0 [libfc]\nfc_lport_disc_callback+0xbc/0xe0 [libfc]\nfc_disc_done+0xa8/0xf0 [libfc]\nfc_disc_timeout+0x29/0x40 [libfc]\nrun_workqueue+0xb8/0x140\nworker_thread+0x96/0x110\nkthread+0x96/0xa0\nchild_rip+0xa/0x20\n\nFix is to not cancel the disc_work if discovery is already\nstopped, thus allowing lport state machine to restart and try\ndiscovery again.\n\nSigned-off-by: Bhanu Prakash Gollapudi \u003cbprakash@broadcom.com\u003e\nAcked-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "922611569572d3c1aa0ed6491d21583fb3fcca22",
      "tree": "f7cb42bf5519d1c42853808f2f784188afe1bc2e",
      "parents": [
        "239e81048b7dcd27448db40c845f88ac7c68424e"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:21:12 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:06:02 2010 -0500"
      },
      "message": "[SCSI] libfc: don\u0027t require a local exchange for incoming requests\n\nIncoming requests shouldn\u0027t require a local exchange if we\u0027re\njust going to reply with one or two frames and don\u0027t expect\nanything further.  Don\u0027t allocate exchanges for such requests\nuntil requested by the upper-layer protocol.\n\nThe sequence is always NULL for new requests, so remove\nthat as an argument to request handlers.\n\nAlso change the first argument to lport-\u003ett.seq_els_rsp_send\nfrom the sequence pointer to the received frame pointer, to\nsupply the exchange IDs and destination ID info.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "239e81048b7dcd27448db40c845f88ac7c68424e",
      "tree": "c6d316b365e593a274511fca9562c87db2252a7e",
      "parents": [
        "24f089e2f2c800f88039e9d536d558ec6e349fad"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:21:07 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:06:01 2010 -0500"
      },
      "message": "[SCSI] libfc: add interface to allocate a sequence for incoming requests\n\nFor incoming ELS and FCP requests, we often don\u0027t require an\nexchange and sequence, however, sometimes we do.  For those cases,\n(primarily FCP requests for targets) add a function to set up\nthe exchange and sequence.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "24f089e2f2c800f88039e9d536d558ec6e349fad",
      "tree": "59cf263f112e176015a3a37c3928cc3d2a4dfcb5",
      "parents": [
        "251748a99e631a2c46edcf9e519cfc60fae8153d"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:21:01 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:06:00 2010 -0500"
      },
      "message": "[SCSI] libfc: add fc_fill_reply_hdr() and fc_fill_hdr()\n\nAdd functions to fill in an FC header given a request header.\nThese reduces code lines in fc_lport and fc_rport and works\nwithout an exchange/sequence assigned.\n\nfc_fill_reply_hdr() fills a header for a final reply frame.\n\nfc_fill_hdr() which is similar but allows specifying the\nf_ctl parameter.\n\nAdd defines for F_CTL values FC_FCTL_REQ and FC_FCTL_RESP.\nThese can be used for most request and response sequences.\n\nv2 of patch adds a line to copy the frame encapsulation\ninfo from the received frame.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "251748a99e631a2c46edcf9e519cfc60fae8153d",
      "tree": "6255e513473fffde4691f761c53e82440d763d18",
      "parents": [
        "079ecd8cfe95dfd28b74f3a00d66fdbcdfc8c611"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:20:56 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:05:59 2010 -0500"
      },
      "message": "[SCSI] libfc: add fc_frame_sid() and fc_frame_did() functions\n\nTo pave the way for eliminating exchanges from incoming requests,\nadd simple inline fc_frame_sid() and fc_frame_did() functions\nwhich get the FC_IDs from the frame header.  This can be almost\nas efficient as getting them from the sequence/exchange.\n\nMove ntohll, htonll, ntoh24 and hton24 to \u003cscsi/fc_frame.h\u003e\nsince we need them there and that\u0027s included by \u003cscsi/libfc.h\u003e\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "079ecd8cfe95dfd28b74f3a00d66fdbcdfc8c611",
      "tree": "474d1f3851f6e33f04843f91f6ed1d7a3ca41765",
      "parents": [
        "1dd454d9e5205f9a61d51fb97159afeffa0a506c"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:20:51 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:05:58 2010 -0500"
      },
      "message": "[SCSI] libfc: eliminate rport LOGO state\n\nThe LOGO state hasn\u0027t been used in a while, except in a brief\ntransition to DELETE state while holding the rport mutex.\nAll port LOGO responses have been ignored as well as any timeout\nif we don\u0027t get a response.\n\nSo this patch just removes LOGO state and simplifies the response handler.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "f60e12e9c778c8256a646f80603d1b88ba5ce891",
      "tree": "732e918fc85cc441cd539be5e389e0dfd29a2199",
      "parents": [
        "a7b12a279faaad26837276065104a1f9cf60e962"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:20:14 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:05:54 2010 -0500"
      },
      "message": "[SCSI] libfc: track FIP exchanges\n\nWhen an exchange is received with a FIP encapsulation, we need\nto know that the response must be sent via FIP and what the original\nELS opcode was.  This becomes important for VN2VN mode, where we may\nreceive FLOGI or LOGO from several peer VN_ports, and the LS_ACC or\nLS_RJT must be sent FIP-encapsulated with the correct sub-type.\n\nAdd a field to the struct fc_frame, fr_encaps, to indicate the\nencapsulation values.  That term is chosen to be neutral and\nLLD-agnostic in case non-FCoE/FIP LLDs might find it useful.\n\nThe frame fr_encaps is transferred from the ingress frame to the\nexchange by fc_exch_recv_req(), and back to the outgoing frame\nby fc_seq_send().\n\nThis is taking the last byte in the skb-\u003ecb array.  If needed,\nwe could combine the info in sof, eof, flags, and encaps\ntogether into one field, but it\u0027d be better to do that if\nand when its needed.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "a7b12a279faaad26837276065104a1f9cf60e962",
      "tree": "3537d1a5b984f4c9f89b7c549df2afcafce8c940",
      "parents": [
        "3726f3584e113697b68d3d4ff1ecf1042a06f800"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:20:08 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:05:53 2010 -0500"
      },
      "message": "[SCSI] libfc: add FLOGI state to rport for VN2VN\n\nThe FIP proposal for VN_port to VN_port point-to-multipoint\noperation requires a FLOGI be sent to each remote port.\nThe FLOGI is sent with the assigned S_ID and D_IDs of the\nlocal and remote ports.  This and the response get\nFIP-encapsulated for Ethernet.\n\nAdd FLOGI state to the remote port state machine.\nThis will be skipped if not in point-to-multipoint mode.\n\nTo reduce a little duplication between PLOGI and FLOGI\nresponse handling, added fc_rport_login_complete(), which\nhandles the parameters for the rdata struct.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "3726f3584e113697b68d3d4ff1ecf1042a06f800",
      "tree": "2e452d689739c4c2516f50d018f8587bf7d58e41",
      "parents": [
        "3d902ac09a2812b359edf633425d1327a18399e9"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:20:03 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:05:53 2010 -0500"
      },
      "message": "[SCSI] libfc: Add local port point-to-multipoint flag\n\nFor VN_port to VN_port mode, the transport sets the port_id and\nthere\u0027s no lport FLOGI.  This is similar to FC loop mode.\n\nAdd a point_to_multipoint flag that indicates the local port is in\npoint-to-multipoint mode.  This skips FLOGI and discovery.\nIt also skips resetting the port_id on resets other than link down.\n\nAdd function fc_lport_set_local_id() that sets the local port_id.\nThis is called by libfcoe on behalf of the low-level driver\nto set the port_id when the link comes up.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "0685230c59b5482e04ab50e7afc51119ceaba651",
      "tree": "64fbf16efb314efc5cba7e313342f0d57ce81e95",
      "parents": [
        "fdb068c6cd6e30d43664f856d3530715a5742713"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:19:53 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:05:52 2010 -0500"
      },
      "message": "[SCSI] libfc: add discovery-private pointer for LLD\n\nFor VN_port to VN_port mode, FIP will do discovery and needs a\nway to find its state from the local port or discovery structure.\nIt seems that any other LLD that implements its own discovery\nwould also need something like this.\n\nReplace disc-\u003elport with disc-\u003epriv, and use container_of to\nfind the lport.  We could use disc-\u003epriv for that, but\ncontainer_of is smaller and faster.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "f90377abcab2e305450ee76a0f9042907560c5d8",
      "tree": "6ed2f707f8c15162bcca4a7f44a3a97ba09172ad",
      "parents": [
        "42e9041467cf5fd33501b91b27e26807c259c896"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:19:42 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:05:49 2010 -0500"
      },
      "message": "[SCSI] libfc: provide space for LLD after remote port structure\n\nAdd pre-zeroed space after the allocation for fc_rport_priv\nfor use by the lower-level driver.\n\nThis is primarily for VN2VN FIP mode, but could be used in\nother ways someday.\n\nThe space required is specified in lport-\u003erport_priv_size.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "42e9041467cf5fd33501b91b27e26807c259c896",
      "tree": "41a335a931e151f3fa00f384b5d1fb024421b7d2",
      "parents": [
        "519e5135e2537c9dbc1cbcc0891b0a936ff5dcd2"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Jul 20 15:19:37 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:05:48 2010 -0500"
      },
      "message": "[SCSI] libfc: convert rport lookup to be RCU safe\n\nTo allow LLD to do lookups on rports without grabbing a mutex,\nmake them RCU-safe.  The caller of lport-\u003ett.rport_lookup will\nhave the choice of holding disc_mutex or the rcu_read_lock().\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "f034260db330bb3ffc815fcb682b1c84aca09591",
      "tree": "4570860e30b7dfcaedceff905eeb1ab244b1a504",
      "parents": [
        "4b2164d4d212e437c9f080023a67f8f9356d2c4c"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Fri Jun 11 16:44:57 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Tue Jul 27 12:01:53 2010 -0500"
      },
      "message": "[SCSI] libfc: fix indefinite rport restart\n\nRemote ports were restarting indefinitely after getting\nrejects in PRLI.\n\nFix by adding a counter of restarts and limiting that with\nthe port login retry limit as well.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "4b2164d4d212e437c9f080023a67f8f9356d2c4c",
      "tree": "aaa86c0e2b1532b87780f568b35921e56342557d",
      "parents": [
        "0db6f4353d68c0108b5fe0bad8259de0197589c6"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Fri Jun 11 16:44:51 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Tue Jul 27 12:01:52 2010 -0500"
      },
      "message": "[SCSI] libfc: Fix remote port restart problem\n\nThis patch somewhat combines two fixes to remote port handing in libfc.\n\nThe first problem was that rport work could be queued on a deleted\nand freed rport.  This is handled by not resetting rdata-\u003eevent\nton NONE if the rdata is about to be deleted.\n\nHowever, that fix led to the second problem, described by\nBhanu Gollapudi, as follows:\n\u003e Here is the sequence of events. T1 is first LOGO receive thread, T2 is\n\u003e fc_rport_work() scheduled by T1 and T3 is second LOGO receive thread and\n\u003e T4 is fc_rport_work scheduled by T3.\n\u003e\n\u003e 1. (T1)Received 1st LOGO in state Ready\n\u003e 2. (T1)Delete port \u0026 enter to RESTART state.\n\u003e 3. (T1)schdule event_work, since event is RPORT_EV_NONE.\n\u003e 4. (T1)set event \u003d RPORT_EV_LOGO\n\u003e 5. (T1)Enter RESTART state as disc_id is set.\n\u003e 6. (T2)remember to PLOGI, and set event \u003d RPORT_EV_NONE\n\u003e 6. (T3)Received 2nd LOGO\n\u003e 7. (T3)Delete Port \u0026 enter to RESTART state.\n\u003e 8. (T3)schedule event_work, since event is RPORT_EV_NONE.\n\u003e 9. (T3)Enter RESTART state as disc_id is set.\n\u003e 9. (T3)set event \u003d RPORT_EV_LOGO\n\u003e 10.(T2)work restart, enter PLOGI state and issues PLOGI\n\u003e 11.(T4)Since state is not RESTART anymore, restart is not set, and the\n\u003e event is not reset to RPORT_EV_NONE. (current event is RPORT_EV_LOGO).\n\u003e 12. Now, PLOGI succeeds and fc_rport_enter_ready() will not schedule\n\u003e event_work, and hence the rport will never be created, eventually losing\n\u003e the target after dev_loss_tmo.\n\nSo, the problem here is that we were tracking the desire for\nthe rport be restarted by state RESTART, which was otherwise\nequivalent to DELETE.  A contributing factor is that we dropped\nthe lock between steps 6 and 10 in thread T2, which allows the\nstate to change, and we didn\u0027t completely re-evaluate then.\n\nThis is hopefully corrected by the following minor redesign:\n\nSimplify the rport restart logic by making the decision to\nrestart after deleting the transport rport.  That decision\nis based on a new STARTED flag that indicates fc_rport_login()\nhas been called and fc_rport_logoff() has not been called\nsince then.  This replaces the need for the RESTART state.\n\nOnly restart if the rdata is still in DELETED state\nand only if it still has the STARTED flag set.\n\nAlso now, since we clear the event code much later in the\nwork thread, allow for the possibility that the rport may\nhave become READY again via incoming PLOGI, and if so,\nqueue another event to handle that.\n\nIn the problem scenario, the second LOGO received will\ncause the LOGO event to occur again.\n\nReported-by: Bhanu Gollapudi \u003cbprakash@broadcom.com\u003e\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "7b2787ec15b9d1c2f716da61b0eec21a3f5e6520",
      "tree": "39b098d4253fa266ea75bf1f7feb75458e78b77d",
      "parents": [
        "5e4f8fe7b58f4da5043b7f219fe9193cddd9262e"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri May 07 15:18:41 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sun May 16 22:22:34 2010 -0400"
      },
      "message": "[SCSI] libfc: Move the port_id into lport\n\nThis patch creates a port_id member in struct fc_lport.\nThis allows libfc to just deal with fc_lport instances\ninstead of calling into the fc_host to get the port_id.\n\nThis change helps in only using symbols necessary for\noperation from the libfc structures. libfc still needs\nto change the fc_host_port_id() if the port_id changes\nso the presentation layer (scsi_transport_fc) can provide\nthe user with the correct value, but libfc shouldn\u0027t\nrely on the presentation layer for operational values.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "1b80e0f91c41db4633c0a61f727de169a9e9b275",
      "tree": "eda3295e4b1f609727bbb661410dd17093f62e96",
      "parents": [
        "721cafafb66f57b461226aa197997f3e5b296f91"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri May 07 15:18:24 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sun May 16 22:22:29 2010 -0400"
      },
      "message": "[SCSI] libfc: Remove unused fc_get_host_port_type\n\nRemove this unused routine.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "0b2f74a47f2b10bd4c70324820a93c070b3960a5",
      "tree": "406dc45508b5b23fd0212e7891f577e42e8d159e",
      "parents": [
        "3b719d01617288f4c11307fcb933997d7ca895c3"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Fri Apr 09 14:22:39 2010 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sun Apr 11 14:02:34 2010 -0500"
      },
      "message": "[SCSI] libfc: fix hton24 macro to take expressions as args\n\nhton24(p + 3, value) would fail to compile because\np + 3[0] is not a valid expression.\n\nWent ahead and converted hton24 and ntoh24 to inline\nfunctions, which is better because the parameters\nare evalutated only once.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "f018b73af6db4f330ad5da9ac53997a699c30c42",
      "tree": "4f4e9405d923c0021771549dbdec34569c0e27a7",
      "parents": [
        "b3ef990c1514859bffae221b9e82e46a38f1e7bf"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Fri Mar 12 16:08:55 2010 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sun Apr 11 09:23:44 2010 -0500"
      },
      "message": "[SCSI] libfc, libfcoe, fcoe: use smp_processor_id() only when preempt disabled\n\nWhen the kernel is configured for preemption, using smp_processor_id()\nwhen preemption is enabled causes a warning backtrace and is wrong\nsince we could move off of that CPU as soon as we get the ID,\nand we would be referencing the wrong CPU, and possibly an invalid one\nif it could be hotswapped out.\n\nRemove the fc_lport_get_stats() function and explicitly use per_cpu_ptr()\nto get the statistics.  Where preemption has been disabled by holding\na _bh lock continue to use smp_processor_id(), but otherwise use\nget_cpu()/put_cpu().\n\nIn fcoe_recv_frame() also changed the cases where we return in the\nmiddle to do a goto to the code which bumps ErrorFrames and does\na put_cpu().  Two of these cases didn\u0027t bump ErrorFrames before, but\ndoing so is harmless because they \"can\u0027t happen\", due to prior length\nchecks.\n\nAlso rearranged code in fcoe_recv_frame() to have only one call to\nfc_exch_recv().  It\u0027s just as efficient and saves a call to put_cpu().\n\nIn fc_fcp.c, adjusted a FIXME comment for code which doesn\u0027t need fixing.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "b84056bf68404a5fe06b452ea9790b9927e793a6",
      "tree": "67e9129cd1cf94465f6845ee8f378c856b27bd04",
      "parents": [
        "b21a0c397eea722ff84bbeaf5e6e732a06b69896"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Nov 20 14:55:19 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:58 2009 -0600"
      },
      "message": "[SCSI] fcoe, libfc: add get_lesb() to allow LLD to fill the link error status block (LESB)\n\nAdd a member function pointer as get_lesb to libfc_function_template so LLD\ncan fill the LESB based on its own statistics. For fcoe, it fills the LESB\nas a fcoe_fc_els_lesb struct according to FC-BB-5.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "6580bbd0afe6ba1be5d53b331e92a7690046c923",
      "tree": "a628a6ce7c52634cced5957d57a979338ce102f3",
      "parents": [
        "859b7b649ab58ee5cbfb761491317d5b315c1b0f"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Nov 20 14:54:52 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:55 2009 -0600"
      },
      "message": "[SCSI] libfc: add FC-BB-5 LESB counters to fcoe_dev_stats\n\nFC-BB-5 Rev2.0, Clause 7.10 extends the FC-LS-3 LESB for FC-BB_E. We are\nalready tracking Link Failure Count so add the rest in this patch.\n\nFor VLinkFailureCount and MissDiscAdvCount, they are part of the per-cpu\nfcoe_dev_stats. For SymbolErrorCount, ErroredBlockCount, and FCSErrorCount,\nthey are defined in IEEE 802.3-2008 and are per LLD. They are expected to\ncome from LLD.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "ab593b187391bdd03ccad2968972a2e118a88cd4",
      "tree": "f1fb209ae42b19c6e9065ae8db37776c1bb39558",
      "parents": [
        "78112e5558064cb4d2e355aed87b2036fcdfe3dd"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Nov 03 11:49:27 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:20 2009 -0600"
      },
      "message": "[SCSI] libfc: register FC4 features with the FC switch\n\nCustomers and certification tests have pointed out that we don\u0027t\nshow up on the switch management software as an initiator.\n\nOn some MDS switches \u0027show fcns database\u0027 command shows libfc\ninitiators as \u0027fcp\u0027 not \u0027fcp:init\u0027 like other initiators.\n\nOn others switches, I think the switch gets the features by doing a PRLI,\nbut it may be only certain models or under certain configurations.\n\nFix this by registering our FC4 features with the RFF_ID CT request\nafter local port login and after the RFT_ID.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "093bb6a2d378ee83fc6ab886c772b6be86abb5a8",
      "tree": "30fea295440a3c4d5242902fbf3a7b3543d9aa9d",
      "parents": [
        "52a6690d3f0cb7414c34b1e26c569b32d4987662"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Nov 03 11:49:05 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:17 2009 -0600"
      },
      "message": "[SCSI] libfc: add set_fid function to libfc template\n\nThis is to notify the LLD when an FC_ID is assigned to the local port.\n\nThe fnic driver needs to push the assigned FC_ID to firmware.\nIt currently does this by intercepting the FLOGI responses, and\nin order to make that code more common with FIP and NPIV, it\nmakes more sense to wait until the local port has completely\nhandled the FLOGI or FDISC response.  Also, when we fix\npoint-to-point FC_ID assignment, we\u0027ll need this callback as well.\n\nAdd a call to the libfc template, which is called whenever\nthe local port FC_ID is being assigned.  It defaults to\nfc_lport_set_fid(), supplied by libfc.\n\nAs additional benefit of this function, the LLD may determine\nthe MAC address that caused the change by looking at the received frame.\n\nWe also print the assigned port ID as long as it isn\u0027t 0.\nSetting port ID to 0 happens often in reset while retrying FLOGI,\nand would be uninteresting.  This replaces the previous message\nwhich didn\u0027t identify the host adapter instance.\n\npatch v2 note: changed one word in a comment.  \"intercepted\" -\u003e \"provided\".\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "3a3b42bf89a9b90ae9ed2c57fdc378e5473a0ef9",
      "tree": "6d41d669a3c7b4a3bb5219ded856251c148e7ab6",
      "parents": [
        "a51ab39606042e76a483547620699530caa12c40"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Tue Nov 03 11:47:39 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:07 2009 -0600"
      },
      "message": "[SCSI] libfc: Formatting cleanups across libfc\n\nThis patch makes a variety of cleanup changes to all libfc files.\n\nThis patch adds kernel-doc headers to all functions lacking them\nand attempts to better format existing headers. It also add kernel-doc\nheaders to structures.\n\nThis patch ensures that the current naming conventions for local ports,\nremote ports and remote port private data is upheld in the following\nmanner.\n\nstruct               instance (i.e. variable name)\n--------------------------------------------------\nfc_lport                      lport\nfc_rport                      rport\nfc_rport_libfc_priv           rpriv\nfc_rport_priv                 rdata\n\nI also renamed dns_rp and ptp_rp to dns_rdata and ptp_rdata\nrespectively.\n\nI used emacs \u0027indent-region\u0027 and \u0027tabify\u0027 on all libfc files\nto correct spacing alignments.\n\nI feel sorry for anyone attempting to review this patch.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "a51ab39606042e76a483547620699530caa12c40",
      "tree": "d67261f7a13b7c9ad1d9d69d4aeefe899eef0066",
      "parents": [
        "5868287460b0fc243e828a0b856cd53d8bf45739"
      ],
      "author": {
        "name": "Steve Ma",
        "email": "steve.ma@intel.com",
        "time": "Tue Nov 03 11:47:34 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:06 2009 -0600"
      },
      "message": "[SCSI] libfc, fcoe: Add FC passthrough support\n\nThis is the Open-FCoE implementation of the FC\npassthrough support via bsg interface.\n\nPassthrough support is added to both N_Ports and\nVN_Ports.\n\nSigned-off-by: Steve Ma \u003csteve.ma@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "c9866a548024c33e30f35a14bbcb71ba78266383",
      "tree": "99c68b4f8292ccffd39645424cdd0965a867e161",
      "parents": [
        "5baa17c3e66fc2e414f501b2dd59b962dfc64919"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue Nov 03 11:47:01 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:02 2009 -0600"
      },
      "message": "[SCSI] libfc: Register Symbolic Port Name (RSPN_ID)\n\nRegister the fc_host symbolic name as the symbolic port name\nwith the fabric name server.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "5baa17c3e66fc2e414f501b2dd59b962dfc64919",
      "tree": "8194fcceb647f6740bdf6350da2a2d9dc393ae3e",
      "parents": [
        "c9c7bd7a5e7321aa96289c9b48fdbcc828c105e6"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue Nov 03 11:46:56 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:02 2009 -0600"
      },
      "message": "[SCSI] libfc: Register Symbolic Node Name (RSNN_NN)\n\nRegister the fc_host symbolic name as the symbolic node name\nwith the fabric name server.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "c9c7bd7a5e7321aa96289c9b48fdbcc828c105e6",
      "tree": "e20db89880f4579abf8bd6da66ce2a2a80d0ea94",
      "parents": [
        "28cc0e31d874af05244da421e05565f2ba72fd5c"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue Nov 03 11:46:51 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:01 2009 -0600"
      },
      "message": "[SCSI] libfc: RNN_ID may be required before RSNN_NN with some switches\n\nOne could interpret FC-GS-5 to say that an explicit RNN_ID is required\nbefore RSNN_NN is allowed to succeed, which is why RNN_ID was not obsoleted\nalong with RPN_ID acording to this document:\nftp://ftp.t11.org/t11/member/fc/gs-5/05-546v2.pdf\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "28cc0e31d874af05244da421e05565f2ba72fd5c",
      "tree": "1424db279a37c7b640ff8a3a703172d796eb7538",
      "parents": [
        "9a05753b23c171b6a45e393ec2b9bc034d31bec8"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue Nov 03 11:46:46 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:00 2009 -0600"
      },
      "message": "[SCSI] libfc: RPN_ID is obsolete and unnecessary\n\nRPN_ID has been obsolete per FC-GS-5 for several years.  The port name is\nregistered implicitly as part of FLOGI, and it is undesirable for ports to\nchange a registered port name using RPN_ID while logged into the fabric.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "11b561886643d4e23d0fd58c205d830a448dd0a2",
      "tree": "3d28650e6727589dd672ea3985d2aa2643a99549",
      "parents": [
        "db36c06cc6802d03bcba08982377f7c03a3cda7f"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue Nov 03 11:46:29 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:58 2009 -0600"
      },
      "message": "[SCSI] libfcoe, fcoe: libfcoe NPIV support\n\nThe FIP code in libfcoe needed several changes to support NPIV\n\n1) dst_src_addr needs to be managed per-n_port-ID for FPMA fabrics with NPIV\n   enabled.  Managing the MAC address is now handled in fcoe, with some slight\n   changes to update_mac() and a new get_src_addr() function pointer.\n\n2) The libfc elsct_send() hook is used to setup FCoE specific response\n   handlers for FIP encapsulated ELS exchanges.  This lets the FCoE specific\n   handling know which VN_Port the exchange is for, and doesn\u0027t require\n   tracking OX_IDs.  It might be possible to roll back to the full FIP frame\n   in these, but for now I\u0027ve just stashed the contents of the MAC address\n   descriptor in the skb context block for later use.  Also, because\n   fcoe_elsct_send() just passes control on to fc_elsct_send(), all transmits\n   still come through the normal frame_send() path.\n\n3) The NPIV changes added a mutex hold in the keep alive sending, the lport\n   mutex is protecting the vport list.  We can\u0027t take a mutex from a timer,\n   so move the FIP keep alive logic to the link work struct.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "8faecddb212d502b1b77936498b9a82b13c4ff44",
      "tree": "6809700a72089288aec97187fc7f6455fa6b1d95",
      "parents": [
        "174e1ebffd30a7599b889900089f7acef944cc6b"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue Nov 03 11:46:19 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:57 2009 -0600"
      },
      "message": "[SCSI] libfc: vport link handling and fc_vport state managment\n\nNPIV vports are managed in libfc by changing their virtual link state\nwhen the parent N_Ports internal state changes.  The vport link is only\nonline when the N_Port is in a ready state (logged into the fabric).\n\nvport_state is updated as needed in this patch as well, currently the states\nLINKDOWN, INITIALIZING, ACTIVE, DSIABLED, and NO_FABRIC_SUPP are used.\n\nThis also changes the fc_host port_state handling to differentiate between\nLINKDOWN and OFFLINE.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "174e1ebffd30a7599b889900089f7acef944cc6b",
      "tree": "69b5d4e22f1b997128789eddcd1ec61a33d5903e",
      "parents": [
        "86221969e20a2f60ce104160dc836a964974673b"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue Nov 03 11:46:14 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:56 2009 -0600"
      },
      "message": "[SCSI] libfc: add some generic NPIV support routines to libfc\n\nAdds a function to create a new VN_Port instances, which share the EM\nlist with the N_Port, VN_Port lookup by fabric ID when responding to a new\nrequest (otherwise the exchange lookup from the N_Ports EM list is trusted to\nreturn an exchange with a cached lport value for the correct VN_Port),\na pointer to a fc_vport structure for VN_Ports, and flags to indicate if an\nN_Port supports NPIV and if the switch/fabric allows it.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "86221969e20a2f60ce104160dc836a964974673b",
      "tree": "83f40bc6490feddd18fe9650cbc3b61f0fb7b2e2",
      "parents": [
        "93e6d5ab9969a9200752658677eafd96772302f0"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue Nov 03 11:46:08 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:56 2009 -0600"
      },
      "message": "[SCSI] libfc: changes to libfc_host_alloc to consolidate initialization with allocation\n\nI\u0027d like to keep basic initialization together with allocation, which means\nthis can\u0027t just be a tail-call to scsi_host_alloc.\n\nThis is needed to create a generic libfc host allocation routine for NPIV\nVN_Ports, which will share the exchange ID space (through sharing exchange\nmanager structures) with the parent lport.  In order to clone the exchange\nmanager list when the lport is allocated, the list head must be initialized\nearlier.\n\nAlso, update fnic to use the libfc_host_alloc so that later changes do not break\nit. (contribution by Joe Eykholt)\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "8866a5d9075b7129194576f5f810e85a693c40ba",
      "tree": "8976fd0009ab5870457ca0ecd7a246852744f00c",
      "parents": [
        "255f6386b816b2bc0c251af0ee4985ad5a8461b7"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Tue Nov 03 11:45:58 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:55 2009 -0600"
      },
      "message": "[SCSI] libfc: Add libfc/fc_libfc.[ch] for libfc internal routines\n\ninclude/scsi/libfc.h is currently loaded with common code\nshared between libfc\u0027s sub-modules as well as shared between\nlibfc and fcoe. Previous patches attempted to move out\nnon-common code. This patch creates two files for common\nlibfc routines that will not be shared with fcoe, fnic or\nany other LLDs.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "255f6386b816b2bc0c251af0ee4985ad5a8461b7",
      "tree": "7c2d4605502633715f23d49948ef0f68f9561592",
      "parents": [
        "1a7b75ae719754c77ccd4d18b0d258ae5db38a25"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Tue Nov 03 11:45:52 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:54 2009 -0600"
      },
      "message": "[SCSI] libfc: Remove fc_fcp_complete\n\nThis function is never used, let\u0027s remove it.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "1a7b75ae719754c77ccd4d18b0d258ae5db38a25",
      "tree": "4bcc283dda206e2358678e1e340b0bf539b782ac",
      "parents": [
        "2171c225f641c5402e4c47180d791a612278040e"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Tue Nov 03 11:45:47 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:53 2009 -0600"
      },
      "message": "[SCSI] libfc: Move non-common routines and prototypes out of libfc.h\n\nThis patch moves all non-common routines and function prototypes\nout of libfc.h and into the appropriate .c files. It makes these\nroutines \u0027static\u0027 when necessary and removes any unnecessary EXPORT_SYMBOL\nstatements.\n\nA result of moving the fc_exch_seq_send, fc_seq_els_rsp_send, fc_exch_alloc\nand fc_seq_start_next prototypes out of libfc.h is that they were no longer\nbeing imported into fc_exch.c when libfc.h was included. This caused errors\nwhere routines in fc_exch.c were looking for undefined symbols. To fix this\nthis patch reorganizes fc_seq_alloc, fc_seq_start_next and\nfc_seq_start_next_locked. This move also made it so that\nfc_seq_start_next_locked did not need to be prototyped at the top of\nfc_exch.c.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "e881a172dac4d9ea3b2a1540041d872963c269bd",
      "tree": "9eb1f344b107806c0041c4e0a64192a055117289",
      "parents": [
        "dbf9bfe615717d1145f263c0049fe2328e6ed395"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Oct 15 17:46:39 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:41 2009 -0600"
      },
      "message": "[SCSI] modify change_queue_depth to take in reason why it is being called\n\nThis patch modifies scsi_host_template-\u003echange_queue_depth so that\nit takes an argument indicating why it is being called. This will be\nused so that if a LLD needs to do some extra processing when\nhandling queue fulls or later ramp ups, it can do so.\n\nThis is a simple port of the drivers setting a change_queue_depth\ncallback. In the patch I just have these LLDs adjust the queue depth\nif the user was requesting it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\n\n[Vasu.Dev: v2\n\tAlso converted pmcraid_change_queue_depth and then verified\nall modules compile  using \"make allmodconfig\" for any new build\nwarnings on X86_64.\n\n\tUpdated original description after combing two original\npatches from Mike to make this patch git bisectable.]\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\n[jejb: fixed up 53c700]\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "b4a9c7ede96e90f7b1ec009ce7256059295e76df",
      "tree": "19b6322ba27e296a9350921c2e1511fb7c303694",
      "parents": [
        "4b53662bd594941e5e5e540baaaff6a3e66d062c"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Wed Oct 21 16:28:30 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:37 2009 -0600"
      },
      "message": "[SCSI] libfc: fix free of fc_rport_priv with timer pending\n\nTimer crashes were caused by freeing a struct fc_rport_priv\nwith a timer pending, causing the timer facility list to be\ncorrupted.  This was during FC uplink flap tests with a lot\nof targets.\n\nAfter discovery, we were doing an PLOGI on an rdata that was\nin DELETE state but not yet removed from the lookup list.\nThis moved the rdata from DELETE state to PLOGI state.\nIf the PLOGI exchange allocation failed and needed to be\nretried, the timer scheduling could race with the free\nbeing done by fc_rport_work().\n\nWhen fc_rport_login() is called on a rport in DELETE state,\nmove it to a new state RESTART.  In fc_rport_work, when\nhandling a LOGO, STOPPED or FAILED event, look for restart\nstate.  In the RESTART case, don\u0027t take the rdata off the\nlist and after the transport remote port is deleted and\nexchanges are reset, re-login to the remote port.\n\nNote that the new RESTART state also corrects a problem we\nhad when re-discovering a port that had moved to DELETE state.\nIn that case, a new rdata was created, but the old rdata\nwould do an exchange manager reset affecting the FC_ID\nfor both the new rdata and old rdata.  With the new state,\nthe new port isn\u0027t logged into until after any old exchanges\nare reset.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "e95147d8fa4e63bf6d8ff249f074d0047338fc61",
      "tree": "c140b07c5f37586e33089f66f8d21363dd987d8d",
      "parents": [
        "3f127ad97a985d43b3cdf4b644e77a775b6035d4"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Wed Oct 21 16:27:39 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:31 2009 -0600"
      },
      "message": "[SCSI] libfc: removes unused disc_work and ex_list\n\nReported-by: Alex Lyakas \u003calexl@mellanox.co.il\u003e\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "370c3bd05cf02afabea9cd3f2de66202d6b516dc",
      "tree": "832cf6b3091db117f119aa8692d050f43fe0a9cb",
      "parents": [
        "68a1750b46ad5177f7703081b5fe85624f1aa62b"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:03:47 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:08:02 2009 -0500"
      },
      "message": "[SCSI] libfc: use ADISC to verify rport login state\n\nWhen rport_login is called on an rport that is already thought\nto be logged in, use ADISC.  If that fails, redo PLOGI.\nThis is less disruptive after fabric changes that don\u0027t affect\nthe state of the target.\n\nImplement the sending of ADISC via fc_els_fill.\n\nAdd ADISC state to the rport state machine.  This is entered from READY\nand returns to READY after successful completion.  If it fails, the rport\nis either logged off and deleted or re-does PLOGI.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "f657d299cf05883e23e12a69e86842da1df378ad",
      "tree": "3593d2054bd361f28593eea12c83868709013b0c",
      "parents": [
        "25b37b981e706c6df72c28c94f7787c3ea0cd343"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:03:21 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:59 2009 -0500"
      },
      "message": "[SCSI] libfc: improve debug messages for ELS response handlers\n\nImprove lport and rport debug messages to indicate whether\nthe response is LS_ACC, LS_RJT, closed, or timeout.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "131203a1ef53f3a4deb3260031bc53c7e4db4a24",
      "tree": "0f85ee5bf5db4612a7a62aa8835f33a1acc5a9ac",
      "parents": [
        "6bd054cbf3f7da3442f30a7d4eb7da4dd1c44f21"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:03:10 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:58 2009 -0500"
      },
      "message": "[SCSI] libfc: move remote port lookup for ELS requests into fc_rport.c.\n\nThis moves the remote port lookup for incoming ELS requests into\nfc_rport.c, in preparation for handing PLOGI and LOGO from\nunknown rports.\n\nThis changes the arg to rport_recv_req from an rdata to an lport.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "9737e6a7b5b8af48f983cd565df93493597c565b",
      "tree": "2bb3e50171af1fbc18d0f739d760b6218031fb31",
      "parents": [
        "935d0fce44b906268b8a29de4e72ebb57a3a06d8"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Tue Aug 25 14:02:59 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:57 2009 -0500"
      },
      "message": "[SCSI] libfc: Initialize fc_rport_identifiers inside fc_rport_create\n\nCurrently these values are initialized by the callers. This was exposed\nby a later patch that adds PLOGI request support. The patch failed to\ninitialize the new remote port\u0027s roles and it caused problems. This patch\nhas the rport_create routine initialize the identifiers and then the\ncallers can override them with real values.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "0f6c6149870e03c722af6eae406758b28cb71320",
      "tree": "7dca629255539d73bd44fea4fb50a9c0a9ddd079",
      "parents": [
        "8025b5db7e10cd90cadec940cc766be3bbda65e8"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:02:11 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:48 2009 -0500"
      },
      "message": "[SCSI] libfc: do not log off rports before or after discovery\n\nWhen receiving an RSCN, do not log off all rports.  This is\nextremely disruptive.  If, after the GPN_FT response, some\nrports haven\u0027t been listed, delete them.\n\nAdd field disc_id to structs fc_rport_priv and fc_disc.\ndisc_id is an arbitrary serial number used to identify the\nrports found by the latest discovery.  This eliminates the need\nto go through the rport list when restarting discovery.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "b84c7962653e4d04065d2603f0e1424ee0f455ae",
      "tree": "7f5086f5a97a36dd081cb18c17a3a1a7b4cd8759",
      "parents": [
        "786681b96fc1a5b94d187160b7bf80bf6b4681ed"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:01:34 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:45 2009 -0500"
      },
      "message": "[SCSI] libfc: remove unused disc-\u003edelay element\n\nDelete unused disc-\u003edelay element.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "786681b96fc1a5b94d187160b7bf80bf6b4681ed",
      "tree": "f15c89228d48057957d86ef468118a2c76dcce42",
      "parents": [
        "00fea930d404b9a9039291d5a61975e6c2ea974e"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:01:29 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:44 2009 -0500"
      },
      "message": "[SCSI] libfc: eliminate disc-\u003eevent\n\nThere was no need to have the discovery status stored in struct fc_disc.\n\nChange fc_disc_done() to take the discovery status as an argument\nand just pass it on to the discovery callback.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "9e9d0452fe12115b1c1883c0d4d2ee509079791b",
      "tree": "7cf8bb38e28e562274dcd7eeb2adfdf394876d14",
      "parents": [
        "4c0f62b5679321b2e5572cf541ffb9f7b344d47c"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:01:18 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:43 2009 -0500"
      },
      "message": "[SCSI] libfc: don\u0027t create dummy (rogue) remote ports\n\nDon\u0027t create a \"dummy\" remote port to go with fc_rport_priv.\n\nMake the rport truly optional by allocating fc_rport_priv separately\nand not requiring a dummy rport to be there if we haven\u0027t yet done\nfc_remote_port_add().\n\nThe fc_rport_libfc_priv remains as a structure attached to the\nrport for I/O purposes.\n\nBe sure to hold references on rdata when the lock is dropped in\nfc_rport_work().\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "4c0f62b5679321b2e5572cf541ffb9f7b344d47c",
      "tree": "0c4fba12e9098c63cfdc37dac15313f313887b1a",
      "parents": [
        "629f44279d169f29b084d406e9f1c33314f220fa"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:01:12 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:43 2009 -0500"
      },
      "message": "[SCSI] libfc: rename rport event CREATED to READY\n\nRemote ports will become READY more than once after\nADISC is implemented in a later patch.\n\nThe event callback that has been called \"CREATED\" will mean \"READY\".\nRename it now in preparation for those changes.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "f211fa514a07326c0f9364c0e6ed17e38860172f",
      "tree": "9c2c54fee556816f36211185b6d6df0812b9acec",
      "parents": [
        "a46f327aa5caf2cce138e98ddd863b6cca0e71e2"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:01:01 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:42 2009 -0500"
      },
      "message": "[SCSI] libfc: make rport structure optional\n\nAllow a struct fc_rport_priv to have no fc_rport associated with it.\nThis sets up to remove the need for \"rogue\" rports.\n\nAdd a few fields to fc_rport_priv that are needed before the fc_rport\nis created.  These are the ids, maxframe_size, classes, and rport pointer.\n\nRemove the macro PRIV_TO_RPORT().  Just use rdata-\u003erport where appropriate.\n\nTo take the place of the get_device()/put_device ops that were used to\nhold both the rport and rdata, add a reference count to rdata structures\nusing kref.  When kref_get decrements the refcount to zero, a new template\nfunction releasing the rdata should be called.  This will take care of\nfreeing the rdata and releasing the hold on the rport (for now).  After\nsubsequent patches make the rport truly optional, this release function\nwill simply free the rdata.\n\nRemove the simple inline function fc_rport_set_name(), which becomes\nsemanticly ambiguous otherwise.  The caller will set the port_name and\nnode_name in the rdata-\u003eIds, which will later be copied to the rport\nwhen it its created.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "a46f327aa5caf2cce138e98ddd863b6cca0e71e2",
      "tree": "dbb230e8d4e024085e126445e6d819d5088e0406",
      "parents": [
        "9fb9d32831fd687e427ec5b147bb690f468b99a0"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:00:55 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:41 2009 -0500"
      },
      "message": "[SCSI] libfc: change elsct to use FC_ID instead of rdata\n\ntt.elsct_send is used by both FCP and by the rport state machine.\nAfter further patches, these two modules will use different\nstructures for the remote port.\n\nSo, change elsct_send to use the FC_ID instead of the fc_rport_priv\nas its argument.  It currently only uses the FC_ID anyway.\n\nFor CT requests the destination FC_ID is still implicitly 0xfffffc.\nAfter further patches the did arg on CT requests will be used to\nspecify the FC_ID being inquired about for GPN_ID or other queries.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "9fb9d32831fd687e427ec5b147bb690f468b99a0",
      "tree": "c3b6c29cb94040718ea2fe00daac05abf10db714",
      "parents": [
        "922aa210bcad4b34a7bb98ec9d318b7e59e7a5ca"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:00:50 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:41 2009 -0500"
      },
      "message": "[SCSI] libfc: make fc_rport_priv the primary rport interface.\n\nThe rport and discovery modules deal with remote ports\nbefore fc_remote_port_add() can be done, because the\nfull set of rport identifiers is not known at early stages.\n\nIn preparation for splitting the fc_rport/fc_rport_priv allocation,\nmake fc_rport_priv the primary interface for the remote port and\ndiscovery engines.\n\nThe FCP / SCSI layers still deal with fc_rport and\nfc_rport_libfc_priv, however.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "922aa210bcad4b34a7bb98ec9d318b7e59e7a5ca",
      "tree": "480d1304252f34cdb8286ec104850648b852e598",
      "parents": [
        "795d86f55ec3bf6280dda368f208943f1fb7d366"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:00:45 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:40 2009 -0500"
      },
      "message": "[SCSI] libfc: fix RPORT_TO_PRIV and PRIV_TO_RPORT() macros.\n\nThese macros introduce extra undesirable semicolons that keep\nthem from being used in expressions, and they don\u0027t protect\nagainst being passed an expression.\n\nAdd parens and remove the semicolons.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "795d86f55ec3bf6280dda368f208943f1fb7d366",
      "tree": "8d123acf1e7d9d07495d702b88ef2d75dfe696b1",
      "parents": [
        "ab28f1fd3b0d14c1bd693e640decd711d5e6642a"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:00:39 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:40 2009 -0500"
      },
      "message": "[SCSI] libfc: change interface for rport_create\n\nThe interface for lport-\u003ett.rport_create() takes a fc_disc_port arg,\nwhich is unnatural for most calls.   The only reason for this was\nto avoid passing in the local port as an argument, but otherwise\nadded to complexity.\n\nSimplify by just using lport and fc_rport_identifiers.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "ab28f1fd3b0d14c1bd693e640decd711d5e6642a",
      "tree": "3d7b051d7ab8b6d7fb7d936f95e336bf25f26832",
      "parents": [
        "090eb6c41aa74273d3f0721637cff738cfd80669"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Tue Aug 25 14:00:34 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 10 12:07:39 2009 -0500"
      },
      "message": "[SCSI] libfc: prepare to split off struct fc_rport_priv from fc_rport_libfc_priv\n\nWhile the I/O and LLD interfaces use fc_rport_libfc_priv, the\ndisc and rport interfaces will use fc_rport_priv, which will\nbe separately allocated.\n\nChange the disc and rport usage of fc_rport_libfc_priv to fc_rport_priv.\n\nUse #define temporarily to make both names equivalent until a\nsubsequent patch splits them.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "b2f0091fbf8b475fa09b5e1712e0ab84cb3e1ca4",
      "tree": "98d3427aaae0b3d20d5fd077023b4ea23f5b575c",
      "parents": [
        "e4bc50bedf0dd6c63f20a7bc0a2b46667664fba1"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Tue Aug 25 13:58:53 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Sep 05 09:47:37 2009 -0500"
      },
      "message": "[SCSI] fcoe, libfc: fully makes use of per cpu exch pool and then removes em_lock\n\n1. Updates fcoe_rcv() to queue incoming frames to the fcoe per\n   cpu thread on which this frame\u0027s exch was originated and simply\n   use current cpu for request exch not originated by initiator.\n   It is redundant to add this code under CONFIG_SMP, so removes\n   CONFIG_SMP uses around this code.\n\n2. Updates fc_exch_em_alloc, fc_exch_delete, fc_exch_find to use\n   per cpu exch pools, here fc_exch_delete is rename of older\n   fc_exch_mgr_delete_ep since ep/exch are now deleted in pools\n   of EM and so brief new name is sufficient and better name.\n\n   Updates these functions to map exch id to their index into exch\n   pool using fc_cpu_mask, fc_cpu_order and EM min_xid.\n   This mapping is as per detailed explanation about this in\n   last patch and basically this is just as lower fc_cpu_mask\n   bits of exch id as cpu number and upper bit sum of EM min_xid\n   and exch index in pool.\n\n   Uses pool next_index to keep track of exch allocation from\n   pool along with pool_max_index as upper bound of exches array\n   in pool.\n\n3. Adds exch pool ptr to fc_exch to free exch to its pool in\n   fc_exch_delete.\n\n4. Updates fc_exch_mgr_reset to reset all exch pools of an EM,\n   this required adding fc_exch_pool_reset func to reset exches\n   in pool and then have fc_exch_mgr_reset call fc_exch_pool_reset\n   for each pool within each EM for a lport.\n\n5. Removes no longer needed exches array, em_lock, next_xid, and\n   total_exches from struct fc_exch_mgr, these are not needed after\n   use of per cpu exch pool, also removes not used max_read,\n   last_read from struct fc_exch_mgr.\n\n6. Updates locking notes for exch pool lock with fc_exch lock and\n   uses pool lock in exch allocation, lookup and reset.\n\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "e4bc50bedf0dd6c63f20a7bc0a2b46667664fba1",
      "tree": "43f4e7a1d1fb5c042330c07cd0209f1b0eb92fb5",
      "parents": [
        "a69b06bc5e7b153043db8984564b731f99e014fc"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Tue Aug 25 13:58:47 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Sep 05 09:47:36 2009 -0500"
      },
      "message": "[SCSI] fcoe, libfc: adds per cpu exch pool within exchange manager(EM)\n\nAdds per cpu exch pool for these reasons:-\n\n 1. Currently an EM instance is shared across all cpus to manage\n    all exches for all cpus. This required em_lock across all\n    cpus for an exch alloc, free, lookup and reset each frame\n    and that made em_lock expensive, so instead having per cpu\n    exch pool with their own per cpu pool lock will likely reduce\n    locking contention in fast path for an exch alloc, free and\n    lookup.\n\n 2. Per cpu exch pool will likely improve cache hit ratio since\n    all frames of an exch will be processed on the same cpu on\n    which exch originated.\n\nThis patch is only prep work to help in keeping complexity of next\npatch low, so this patch only sets up per cpu exch pool and related\nhelper funcs to be used by next patch. The next patch fully makes\nuse of per cpu exch pool in all code paths ie. tx, rx and reset.\n\nDivides per EM exch id range equally across all cpus to setup per\ncpu exch pool. This division is such that lower bits of exch id\ncarries cpu number info on which exch originated, later a simple\nbitwise AND operation on exch id of incoming frame with fc_cpu_mask\nretrieves cpu number info to direct all frames to same cpu on which\nexch originated. This required a global fc_cpu_mask and fc_cpu_order\ninitialized to max possible cpus number nr_cpu_ids rounded up to 2\u0027s\npower, this will be used in mapping exch id and exch ptr array\nindex in pool during exch allocation, find or reset code paths.\n\nAdds a check in fc_exch_mgr_alloc() to ensure specified min_xid\nlower bits are zero since these bits are used to carry cpu info.\n\nAdds and initializes struct fc_exch_pool with all required fields\nto manage exches in pool.\n\nAllocates per cpu struct fc_exch_pool with memory for exches array\nfor range of exches per pool. The exches array memory is followed\nby struct fc_exch_pool.\n\nAdds fc_exch_ptr_get/set() helper functions to get/set exch ptr in\npool exches array at specified array index.\n\nIncreases default FCOE_MAX_XID to 0x0FFF from 0x07EF, so that more\nexches are available per cpu after above described exch id range\ndivision across all cpus to each pool.\n\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "52ff878c912215210f53c0a080552dd6ba3055a2",
      "tree": "efaf0c6a6585aedc02af5faa3b47f4f4685fc783",
      "parents": [
        "d459b7ea1b4c7aa3dacfeee174d02b2f7a95850d"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Wed Jul 29 17:05:10 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:52:08 2009 -0500"
      },
      "message": "[SCSI] fcoe, fnic, libfc: modifies current code paths to use EM anchor list\n\nModifies current code to use EM anchor list in EM allocation, EM free,\nEM reset, exch allocation and exch lookup code paths.\n\n 1. Modifies fc_exch_mgr_alloc to accept EM match function and then\n    have allocated EM added to the lport using fc_exch_mgr_add API\n    while also updating EM kref for newly added EM.\n\n 2. Updates fc_exch_mgr_free API to accept only lport pointer instead\n    EM and then have this API free all EMs of the lport from EM anchor\n    list.\n\n 3. Removes single lport pointer link from the EM, which was used in\n    associating lport pointer in newly allocated exchange. Instead have\n    lport pointer passed along new exchange allocation call path and\n    then store passed lport pointer in newly allocated exchange, this\n    will allow a single EM instance to be used across more than one\n    lport and used in EM reset to reset only lport specific exchanges.\n\n 4. Modifies fc_exch_mgr_reset to reset all EMs from the EM anchor list\n    of the lport, adds additional exch lport pointer (ep-\u003elp) check for\n    shared EM case to reset exchange specific to a lport requested reset.\n\n 5. Updates exch allocation API fc_exch_alloc to use EM anchor list and\n    its anchor match func pointer. The fc_exch_alloc will walk the list\n    of EMs until it finds a match, a match will be either null match\n    func pointer or call to match function returning true value.\n\n 6. Updates fc_exch_recv to accept incoming frame on local port using\n    only lport pointer and frame pointer without specifying EM instance\n    of incoming frame. Instead modified fc_exch_recv to locate EM for the\n    incoming frame by matching xid of incoming frame against a EM xid range.\n    This change was required to use EM list in libfc Rx path and after this\n    change the lport fc_exch_mgr pointer emp is not needed anymore, so\n    removed emp pointer.\n\n 7. Updates fnic for removed lport emp pointer and above modified libfc APIs\n    fc_exch_recv, fc_exch_mgr_alloc and fc_exch_mgr_free.\n\n 8. Removes exch_get and exch_put from libfc_function_template as these\n    are no longer needed with EM anchor list and its match function use.\n    Also removes its default function fc_exch_get.\n\nA defect this patch introduced regarding the libfc initialization order in\nthe fnic driver was fixed by Joe Eykholt \u003cjeykholt@cisco.com\u003e.\n\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "d459b7ea1b4c7aa3dacfeee174d02b2f7a95850d",
      "tree": "65fafcc2af6d44713fd5e7f113fa7f180d4f4675",
      "parents": [
        "96316099ac3cb259eac2d6891f3c75b38b29d26e"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Wed Jul 29 17:05:05 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:52:08 2009 -0500"
      },
      "message": "[SCSI] libfc: Remove the FC_EM_DBG macro\n\nCurrently there is a 1:1 relationship between the lport\nand exchange manager. This macro takes an EM as an argument\nand determines the lport from it. However, later patches\nwill use an EM list per lport, so we will no longer have\nthis 1:1 relationship- this macro must change.\n\nThe FC_EM_DBG macro is rarely used. There are four callers,\ntwo can use FC_LPORT_DBG instead and two can be removed\nsince they\u0027re not necessary. This patch makes those changes\nand removes the macro.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "96316099ac3cb259eac2d6891f3c75b38b29d26e",
      "tree": "f4ec7001462bd00340de19b3045063872652c5a6",
      "parents": [
        "201e5795b7b9582accb6d83316e30f24d7d40fd3"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Wed Jul 29 17:05:00 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:52:07 2009 -0500"
      },
      "message": "[SCSI] fcoe, libfc: adds exchange manager(EM) anchor list per lport and related APIs\n\nAdds EM list using a anchor struct fc_exch_mgr_anchor, anchor is used\nto allow same EM instance sharing across more than one lport on a eth\ndevice, this implementation is per discussed design posted at\nhttp://www.open-fcoe.org/pipermail/devel/2009-June/002566.html.\n\nThe shared EM is required for multiple lports on eth device when\nusing multiple VLANs or NPIV.\n\nAdds fc_exch_mgr_add API to add a EM to the lport and fc_exch_mgr_del\nAPI to delete previously added EM.\n\nAlso adds function fc_exch_mgr_destroy() to destroy allocated EM.\nThe kref is added to the EM to keep track of EM usage count, the EM is\ndestroyed when no longer in use upon kref reaching to zero.\n\nThe caller can specify match function to fc_exch_mgr_add, this\nwill be used in determining exchange allocation from its EM or not.\n\nMoved calling of fcoe_em_config below fcoe_libfc_config calling,\nso that list head lp-\u003eema_list is initialized before configuring\nEM.\n\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "141940548c6919c22bf0573c68fd59d961e22475",
      "tree": "64ef27e9f0e11df5e64bd5616ed194a02b0eea5c",
      "parents": [
        "84b05445b9f0b1ac2192f32260c916426d902d79"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Wed Jul 29 17:04:43 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:52:06 2009 -0500"
      },
      "message": "[SCSI] libfc: rename rport state \"NONE\" to \"DELETE\".\n\nState RPORT_ST_NONE was intented to be an invalid state (0), never used.\nThis was a misguided attempt to be sure it was always initialized.\nHaving an extra state meaning nothing requires switch statements to\nhave a case covering that state.\n\nState NONE has been used instead to mean the remote port is being deleted.\nChanging the name to RPORT_ST_DELETE.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "b1d9fd5574763abe5c763e32e3547a4adee9bd88",
      "tree": "fbf80ee698c4f9c9ffa8dc054d5c84df2459076f",
      "parents": [
        "f161fb72104c7addac3d404a1ff543b2491c1426"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Wed Jul 29 17:04:22 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:52:04 2009 -0500"
      },
      "message": "[SCSI] libfc: rename lport NONE state to DISABLED\n\nThe state NONE was meant to be invalid, but has been used as\nthe initial state.  Rename it to be DISABLED, as more descriptive.\nFurther patches will make it the like the RESET state, except\nit won\u0027t transition to FLOGI until fc_lport_fabric_login() is called.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "7f74549ff630ad444b0b6bbcabf426f781910906",
      "tree": "37e0a61a3cb43cd55799bb3b5bbb98cba215eee3",
      "parents": [
        "beb29a6d421f6dbd41d68d0621c1b28ad1d4a9f4"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Wed Jul 29 17:04:12 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:52:03 2009 -0500"
      },
      "message": "[SCSI] libfc: change debug messages to give host number.\n\nlibfc debug messages currently show \u0027lport: \u003cfc-id\u003e:\u0027\nwher \u003cfc-id\u003e is the hex assigned port-id.  When the lport\nis logged off, that will be zero, so its hard to distinguish\nwhich instance is involved.  The FC-ID can change\nif the port is re-patched or changes VSANs.\n\nTwo lports may even have the same FC-ID if connected to isolated SANs.\n\nChange the debug messages to print the SCSI host number \"hostN:\",\nwhich will not change for the life of the lport.\nStill show the FC_ID on lport messages.\n\nAlso, add a macro to FC_RPORT_ID_DBG for rport debugging where there\u0027s\nno rdata structure involved.  It takes the lport and port_id as parameters.\nUse this in fc_rport_recv_plogi_req() and fc_rport_recv_logo_req().\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "beb29a6d421f6dbd41d68d0621c1b28ad1d4a9f4",
      "tree": "a899439f436fe913f8ee505bd367387395516c76",
      "parents": [
        "2f718d64ecc7010463d36e6ec4ae37778d03fc0b"
      ],
      "author": {
        "name": "Joe Eykholt",
        "email": "jeykholt@cisco.com",
        "time": "Wed Jul 29 17:04:06 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:52:03 2009 -0500"
      },
      "message": "[SCSI] libfc: remove extra semicolons from debug macros\n\nThis is unlikely to cause any problems, but the libfc debug macros\nintroduce extra undesirable semicolons.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "7414705ea4aef9ce438e547f3138a680d2d1096c",
      "tree": "c8c14a80e31dbecbd6a9d083369f3e5e11105756",
      "parents": [
        "650bd12b9e31ec51d7ad0df3c4f94d863b827976"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Wed Jun 10 15:31:10 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Jun 21 11:07:08 2009 -0500"
      },
      "message": "libfc: Add runtime debugging with debug_logging module parameter\n\nThis patch adds the /sys/module/libfc/parameters/debug_logging\nfile to sysfs as a module parameter. It accepts an integer\nbitmask for logging. Currently it supports:\n\n   bit\nLSB 0 \u003d general libfc debugging\n    1 \u003d lport debugging\n    2 \u003d disc debugging\n    3 \u003d rport debugging\n    4 \u003d fcp debugging\n    5 \u003d EM debugging\n    6 \u003d exch/seq debugging\n    7 \u003d scsi logging (mostly error handling)\n\nthe other bits are not used at this time.\n\nThe patch converts all of the libfc source files to use\nthese new macros and removes the old FC_DBG macro.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a366695592ebc9151dd5a248681270f0925d8324",
      "tree": "cbf40a330cdd04733a34fb8f684cfe1d7a979c31",
      "parents": [
        "d17bf602fbfe4a5ab134a90f6c082fa161d398ee"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Fri May 01 10:01:26 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:18 2009 -0500"
      },
      "message": "[SCSI] libfc,fcoe,fnic: Separate rport and lport max retry counts\n\nThis allows fnic to configure number of retries for lport and rport\nseparately.\n\nSigned-off-by: Abhijeet Joglekar \u003cabjoglek@cisco.com\u003e\nAcked-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b4c6f54632ad664a3d9e7f05e4ea0f1803e32755",
      "tree": "6d419c4a2cdf1e58ae8044d006c53df9cb856f07",
      "parents": [
        "76f6804e7e7bb836cbdf4a73fe6c5485e4cc04c2"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Tue Apr 21 16:27:04 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 10:18:57 2009 -0500"
      },
      "message": "[SCSI] libfc: Track rogue remote ports\n\nRogue ports are currently not tracked on any list. The only reference\nto them is through any outstanding exchanges pending on the rogue ports.\nIf the module is removed while a retry is set on a rogue port\n(say a Plogi retry for instance), this retry is not cancelled because there\nis no reference to the rogue port in the discovery rports list. Thus the\nlocal port can clean itself up, delete the exchange pool, and then the\nrogue port timeout can fire and try to start up another exchange.\n\nThis patch tracks the rogue ports in a new list disc-\u003erogue_rports. Creating\na new list instead of using the disc-\u003erports list keeps remote port code\nchange to a minimum.\n\n1)  Whenever a rogue port is created, it is immediately added to the\ndisc-\u003erogue_rports list.\n\n2) When the rogues port goes to ready, it is removed from the rogue list\nand the real remote port is added to the disc-\u003erports list\n\n3) The removal of the rogue from the disc-\u003erogue_rports list is done in\nthe context of the fc_rport_work() workQ thread in discovery callback.\n\n4) Real rports are removed from the disc-\u003erports list like before. Lookup\nis done only in the real rports list. This avoids making large changes\nto the remote port code.\n\n5) In fc_disc_stop_rports, the rogues list is traversed in addition to the\nreal list to stop the rogue ports and issue logoffs on them. This way, rogue\nports get cleaned up when the local port goes away.\n\n6) rogue remote ports are not removed from the list right away, but\nremoved late in fc_rport_work() context, multiple threads can find the same\nremote port in the list and call rport_logoff(). Rport_logoff() only\ncontinues with the logoff if port is not in NONE state, thus preventing\nmultiple logoffs and multiple list deletions.\n\n7) Since the rport is removed from the disc list at a later stage\n(in the disc callback), incoming frames can find the rport even if\nrport_logoff() has been called on the rport. When rport_logoff() is called,\nthe rport state is set to NONE, and we are trying to cancel all exchanges\nand retries on that port. While in this state, if an incoming\nPlogi/Prli/Logo or other frames match the rport, we should not reply\nbecause the rport is in the NONE state. Just drop the frame, since the\nrport will be deleted soon in the disc callback (fc_rport_work)\n\n8)  In fc_disc_single(), remove rport lookup and call to fc_disc_del_target.\nfc_disc_single() is called from recv_rscn_req() where rport lookup\nand rport_logoff is already done.\n\nSigned-off-by: Abhijeet Joglekar \u003cabjoglek@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a0a25da2a495a889664dc946942b8666665cd1e1",
      "tree": "f3ac1dd6adb76490afa828298e71992ba5045d8f",
      "parents": [
        "fdd78027fd472351783fb6110a72d991c1a07402"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Tue Mar 17 11:42:29 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 03 09:23:07 2009 -0500"
      },
      "message": "[SCSI] fcoe, libfc: fix double fcoe_softc memory alloc\n\nThe foce_softc mem was reserved by libfc_host_alloc as well as\nby fcoe_host_alloc.\n\nRemoves one liner fcoe_host_alloc completely, instead directly calls\nlibfc_host_alloc to alloc scsi_host with libfc for just one fcoe_softc\nas fcoe private data.\n\nMoves libfc_host_alloc to libfc.h since it is a libfc API, placed\nlport_priv API adjacent to libfc_host_alloc since this is related\nto scsi_host priv data.\n\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "582b45bc577f78b5bfff3db874594ce2d962b846",
      "tree": "b0cfe95b235aeca9b967cba8446db58b8a102533",
      "parents": [
        "5e5e92df49d4dfbef9ba981297c7f76d189376ac"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Tue Mar 31 15:51:50 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 03 09:22:58 2009 -0500"
      },
      "message": "[SCSI] fcoe: Use per-CPU kernel function for dev_stats instead of an array\n\nRemove the hotplug creation of dev_stats, we allocate for all possible CPUs\nnow when we allocate the lport.\n\nv2: Durring the 2.6.30 merge window, before these patches were comitted,\n\u0027percpu_ptr\u0027 was renamed \u0027per_cpu_ptr\u0027. This latest update updates this\npatch for the name change.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b277d2aa9a4d969002c4157bf77b76b9ad9ca04a",
      "tree": "1054ff4ab2d03eaaa527919380ed6334233f632b",
      "parents": [
        "39ca9a065a5a0a6f2f0cd648090a979ba3f4f018"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Feb 27 14:07:21 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:15:15 2009 -0500"
      },
      "message": "[SCSI] libfc: add support of large receive offload by ddp in fc_fcp\n\nWhen LLD supports direct data placement (ddp) for large receive of an scsi\ni/o coming into fc_fcp, we call into libfc_function_template\u0027s ddp_setup()\nto prepare for a ddp of large receive for this read I/O. When I/O is complete,\nwe call the corresponding ddp_done() to get the length of data ddped as well\nas to let LLD do clean up.\n\nfc_fcp_ddp_setup()/fc_fcp_ddp_done() are added to setup and complete a ddped\nread I/O described by the given fc_fcp_pkt. They would call into corresponding\nddp_setup/ddp_done implemented by the fcoe layer. Eventually, fcoe layer calls\ninto LLD\u0027s ddp_setup/ddp_done provided through net_device\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "ea1e9a9df5e1fde7ad8878c85b4a097cad0ddcea",
      "tree": "5594c002619125f8976c7d3dacdd6791db497d2e",
      "parents": [
        "4d288d5767f853bfca25adc7b6030dc95518cb2e"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Feb 27 14:07:04 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:13:48 2009 -0500"
      },
      "message": "[SCSI] fcoe, libfc: check offload features from LLD through netdev\n\nThis checks if net_devices supports FCoE offload ops in netdev_ops and it\nif it does, then sets up the corresponding flags in the associated fc_lport.\n\nFor large send offload, the maximum length supported in one large send is now\ndescribed by the added lso_max in fc_lport, which is setup initially from\nnetdev-\u003egso_max_size.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "34f42a070fc98f5dc07e9fa2338b7b8d1dc347eb",
      "tree": "7e08edd537159be8a4fa341e7022cafd6f13b9e4",
      "parents": [
        "0ae4d4ae47d2ccbcad813b0d6d8fe12590c7d648"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:45 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Mar 10 09:04:40 2009 -0500"
      },
      "message": "[SCSI] libfc, fcoe: Fix kerneldoc comments\n\n1) Added \u0027()\u0027 for function names in kerneldoc comments\n\n2) Changed comment bookends from \u0027**/\u0027 to \u0027*/\u0027. The comment on the the\n   mailing list was that \u0027**/\u0027 \"is consistently unconventional.  Not\n   wrong, just odd.\" The Documentation/kernel-doc-nano-HOWTO.txt\n   states that kerneldoc comment blocks should end with \u0027**/\u0027 but most\n   (if not all) instance I found under drivers/scsi/ were only using\n   the \u0027*/\u0027 so I converted to that style.\n\n3) Removed incorrect linebreaks in kerneldoc comments where found\n\n4) Removed a few unnecessary blank comment lines in kerneldoc comment\n   blocks\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "0ae4d4ae47d2ccbcad813b0d6d8fe12590c7d648",
      "tree": "a58434d723ef74a7282c29835dec8496326a14a9",
      "parents": [
        "efaf5c085dd2d31757b0ff7886970dfddd8d1808"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:39 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:45:32 2009 -0600"
      },
      "message": "[SCSI] libfc: Cleanup libfc_function_template comments\n\nMade the comments more like the comments for struct scsi_host_template.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "5101ff99f59aefb72e0c96e82aa32048ac9f8425",
      "tree": "83fba57c7cf542eed4466265619632e7d804eb88",
      "parents": [
        "f7db2c150cf5082cf74555f30a1305938041de80"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:18 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:41:01 2009 -0600"
      },
      "message": "[SCSI] libfc: Don\u0027t violate transport template for rogue port creation\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "bc0e17f691085315ae9303eb5b0883fe16dfe6b1",
      "tree": "53138e80aec810604d4eca4626e4f8df65376ccc",
      "parents": [
        "a7e84f2b83f17f8f11da34ccef3ba5a862dc0182"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Fri Feb 27 10:54:57 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:37:49 2009 -0600"
      },
      "message": "[SCSI] libfc, fcoe: fixed locking issues with lport-\u003elp_mutex around lport-\u003elink_status\n\nThe fcoe_xmit could call fc_pause in case the pending skb queue len is larger\nthan FCOE_MAX_QUEUE_DEPTH, the fc_pause was trying to grab lport-\u003elp_muex to\nchange lport-\u003elink_status and that had these issues :-\n\n1. The fcoe_xmit was getting called with bh disabled, thus causing\n\"BUG: scheduling while atomic\" when grabbing lport-\u003elp_muex with bh disabled.\n\n2. fc_linkup and fc_linkdown function calls lport_enter function with\nlport-\u003elp_mutex held and these enter function in turn calls fcoe_xmit to send\nlport related FC frame, e.g. fc_linkup \u003d\u003e fc_lport_enter_flogi to send flogi\nreq. In this case grabbing the same lport-\u003elp_mutex again in fc_puase from\nfcoe_xmit would cause deadlock.\n\nThe lport-\u003elp_mutex was used for setting FC_PAUSE in fcoe_xmit path but\nFC_PAUSE bit was not used anywhere beside just setting and clear this\nbit in lport-\u003elink_status, instead used a separate field qfull in fc_lport\nto eliminate need for lport-\u003elp_mutex to track pending queue full condition\nand in turn avoid above described two locking issues.\n\nAlso added check for lp-\u003eqfull in fc_fcp_lport_queue_ready to trigger\nSCSI_MLQUEUE_HOST_BUSY when lp-\u003eqfull is set to prevent more scsi-ml cmds\nwhile lp-\u003eqfull is set.\n\nThis patch eliminated FC_LINK_UP and FC_PAUSE and instead used dedicated\nfields in fc_lport for this, this simplified all related conditional\ncode.\n\nAlso removed fc_pause and fc_unpause functions and instead used newly added\nlport-\u003eqfull directly in fcoe.\n\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "1f6ff364ceda516f88351a8ab640e656beed0b26",
      "tree": "227a5f6e39372eaf3c898d1de8feb2b88df707b0",
      "parents": [
        "33dd6f92a1a7ad85c54d47fd9d73371a32c0bde4"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Fri Feb 27 10:54:35 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:35:47 2009 -0600"
      },
      "message": "[SCSI] libfc: Pass lport in exch_mgr_reset\n\nfc_exch_mgr structure is private to fc_exch.c. To export exch_mgr_reset to\ntransport, transport needs access to the exch manager. Change\nexch_mgr_reset to use lport param which is the shared structure between\nlibFC and transport.\n\nAlternatively, fc_exch_mgr definition can be moved to libfc.h so that lport\ncan be accessed from mp*.\n\nSigned-off-by: Abhijeet Joglekar \u003cabjoglek@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "42e9a92fe6a9095bd68a379aaec7ad2be0337f7a",
      "tree": "344f8d9f72a3d926d652632abb8d319f8e32343a",
      "parents": [
        "f032c2f7cdaae0e8907cd3b26426fc651dc5c275"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Tue Dec 09 15:10:17 2008 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Dec 29 11:24:33 2008 -0600"
      },
      "message": "[SCSI] libfc: A modular Fibre Channel library\n\nlibFC is composed of 4 blocks supported by an exchange manager\nand a framing library. The upper 4 layers are fc_lport, fc_disc,\nfc_rport and fc_fcp. A LLD that uses libfc could choose to\neither use libfc\u0027s block, or using the transport template\ndefined in libfc.h, override one or more blocks with its own\nimplementation.\n\nThe EM (Exchange Manager) manages exhcanges/sequences for all\ncommands- ELS, CT and FCP.\n\nThe framing library frames ELS and CT commands.\n\nThe fc_lport block manages the library\u0027s representation of the\nhost\u0027s FC enabled ports.\n\nThe fc_disc block manages discovery of targets as well as\nhandling changes that occur in the FC fabric (via. RSCN events).\n\nThe fc_rport block manages the library\u0027s representation of other\nentities in the FC fabric. Currently the library uses this block\nfor targets, its peer when in point-to-point mode and the\ndirectory server, but can be extended for other entities if\nneeded.\n\nThe fc_fcp block interacts with the scsi-ml and handles all\nI/O.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\n[jejb: added include of delay.h to fix ppc64 compile prob spotted by sfr]\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    }
  ]
}
