)]}'
{
  "log": [
    {
      "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": "30121d14f503dac056ee7f68d99eb5d548899b59",
      "tree": "558f950c8bf620347344b84d0bff60be464366db",
      "parents": [
        "d5e6054a0a097527b3920a8a0aefe7f830c014fd"
      ],
      "author": {
        "name": "Steve Ma",
        "email": "steve.ma@intel.com",
        "time": "Wed May 06 10:52:29 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Jun 08 13:29:11 2009 -0500"
      },
      "message": "[SCSI] libfc: Check if exchange is completed when receiving a sequence\n\nWhen a sequence is received in response to an exchange we issued previously,\nwe should check to see if the exchange has completed. If yes, the sequence\nshould be discarded. Since the exchange might be still in the completion\nprocess, it should be untouched.\n\nSigned-off-by: Steve Ma \u003csteve.ma@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d5e6054a0a097527b3920a8a0aefe7f830c014fd",
      "tree": "c10e28eb8c3feaa760bde491b530464b45a7b6a3",
      "parents": [
        "0f4915398a4233cdbfc4e9bf4436323546945b3f"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 06 10:52:23 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Jun 08 13:29:10 2009 -0500"
      },
      "message": "[SCSI] libfc: use DID_ERROR when we have internall aborted command\n\nIf we aborted a command, because it timed out we should not use\nDID_ABORT. It will fail the command right away back to the upper\nlayer. We want to use something that indicated that the problem\ndid not complete normally, but it was not a fatal problem.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\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": "b0d428adebe9f1232c72bf4c686a6f0eed047cc2",
      "tree": "305b5212f0c117591a45ce045f14d8331c6a681b",
      "parents": [
        "73da9c13d4df3c1715029aa45edc78d71b617dfd"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Apr 27 21:49:31 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed May 20 17:21:15 2009 -0500"
      },
      "message": "[SCSI] fcoe, libfc: fix function declarations to be ANSI-compliant\n\nFix function declarations:\n\ndrivers/scsi/fcoe/fcoe.c:1356:28: warning: non-ANSI function declaration of function \u0027fcoe_dev_setup\u0027\ndrivers/scsi/libfc/fc_rport.c:1293:20: warning: non-ANSI function declaration of function \u0027fc_setup_rport\u0027\ndrivers/scsi/libfc/fc_rport.c:1302:23: warning: non-ANSI function declaration of function \u0027fc_destroy_rport\u0027\n\n[jejb: fixed wrong doc in comment noticed during inspection]\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a29e7646f42a325a7f6cce34adbeb52e8db15566",
      "tree": "f45244f4f3394815a8991e5a05695f427033f40c",
      "parents": [
        "dd3fd72e692c8af007f70df4433c0cffe8582d8b"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Tue Apr 21 16:27:41 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 10:19:31 2009 -0500"
      },
      "message": "[SCSI] libfc: Fix compilation warnings with allmodconfig\n\nWhen building with a .config generated from \u0027make allmodconfig\u0027\nsome build warnings are generated. This patch corrects the warnings,\nadds a FC_FID_NONE (\u003d 0) enumeration for FC-IDs and cleans up one\nvariable naming to meet our variable naming conventions. For example,\nfc_lport\u0027s should be named \"lport,\" not \"lp.\"\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "55c7a60cf0c9113cb52d2b87abb120e951bdb332",
      "tree": "306ef996134a82268ce794004aad0fe1175c462a",
      "parents": [
        "bbf156697a6332f9074e2b275a9157d99a431398"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Tue Apr 21 16:27:19 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 10:19:03 2009 -0500"
      },
      "message": "[SCSI] libfc: whenever queueing delete ev for rport, set state to NONE\n\nWhen a delete event is queued for an rport, set state to NONE so that no\nother processing is done on the rport as it is being removed.\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": "bbf156697a6332f9074e2b275a9157d99a431398",
      "tree": "13928d3cf46a7029a3e764c8767d8c6a31dd2349",
      "parents": [
        "a0fd2e49ec75bf74d3d202df51dfe65ad4c32605"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Tue Apr 21 16:27:14 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 10:19:01 2009 -0500"
      },
      "message": "[SCSI] libfc: Change state to NONE in fc_lport_destroy\n\nAfter lport_destroy, the local port should not be used again. Transition\nto state NONE, any incoming frames or link up should not transition out\nof this state since we are deleting exchange table and cleaning up the\nlocal port. Also, mark link as down.\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": "a0fd2e49ec75bf74d3d202df51dfe65ad4c32605",
      "tree": "5bab1f0d7dc606da8c51722219a8d841bafe42f3",
      "parents": [
        "b4c6f54632ad664a3d9e7f05e4ea0f1803e32755"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Tue Apr 21 16:27:09 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 10:19:00 2009 -0500"
      },
      "message": "[SCSI] libfc: During fabric logoff, flush the rport Q after logging off dns port\n\nWe want to generate the rport queue event (from the logoff)\nbefore flushing the queue otherwise the event may still be\nin the queue when we logoff.\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": "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": "76f6804e7e7bb836cbdf4a73fe6c5485e4cc04c2",
      "tree": "84a01586a05b430ca327709173a65e53b793ca88",
      "parents": [
        "0d228c0f7f9e3ade147e57682915c55b92448230"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Tue Apr 21 16:26:58 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 10:18:51 2009 -0500"
      },
      "message": "[SCSI] libfc: Do not retry if the new state is not the same as old state\n\nFor instance, if there is a Plogi pending (remote port is in Plogi state),\nand the state changes to say NONE (because the port is being logged off),\nthen when the Plogi resp times out, do not start a retry.\n\nThis patch partially reverts an earlier patch (libfc: check for err when\nrecv and state is incorrect), by moving the state check back to before\nchecking for error. However, if the state does not match, then there is\nan additional check to see if its an error ptr or a real frame before\njumping to err or out respectively.\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": "0d228c0f7f9e3ade147e57682915c55b92448230",
      "tree": "29eb6e1d82a784ebac8daecb656135f8bd4d99bd",
      "parents": [
        "a53922ddcf69f4bd8aa321b1fb30418df7a86c61"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Tue Apr 21 16:26:52 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 10:18:48 2009 -0500"
      },
      "message": "[SCSI] libfc: Hold disc mutex while processing gpn ft resp\n\ngpn_ft_resp processing currently does not hold the discovery lock.\ndisc_done() thus gets called from gpn_ft_resp or from gpn_ft_parse\nwithout the lock held. This then sets disc-\u003epending to zero or calls\ngpn_ft_req() without disc_lock held.\n\n- Hold disc mutex during gpn_ft resp processing\n- In disc_done, release the disc mutex while calling lport callback\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": "9b34ecffd59d6ed66fdd6906e8a092a33e7c8564",
      "tree": "e044e14d7627fa36a817e89be4ba23373ee11f76",
      "parents": [
        "a703e490f5e86ddaac4086e56b669fa7316b4a9f"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Tue Mar 17 11:42:13 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 03 09:23:04 2009 -0500"
      },
      "message": "[SCSI] fcoe, libfc: add libfcoe module\n\nJust sets up build environment for libfcoe module towards a\nlibfcoe library for libfc LLDs using FCoE as libfc transport.\n\nCommon library code to libfcoe is added in next patch.\n\nAlso, updated MODULE_LICENSE from \"GPL\" string to \"GPL v2\" for\nlibfc, libfcoe and fcoe modules to accurately match the licenses.\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": "276d68142b7b676594ab8739355c27e9e5b3d41d",
      "tree": "6c341ba366c900f2bef253d13b117da1c278ee3f",
      "parents": [
        "ea1e9a9df5e1fde7ad8878c85b4a097cad0ddcea"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Feb 27 14:07:10 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:14:33 2009 -0500"
      },
      "message": "[SCSI] libfc: use lso_max for sequence offload\n\nMake sure for large send is supported by LLD in outgoing FCP data, we are only\nsending the lso_max a time in one single large send, since that is what\nsupported by LLD.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "aa6cd29b72a5d8e6e5c8f536bc48693824ebfe09",
      "tree": "78b7a67a5f44d0cd12e993471fc0c403819b296d",
      "parents": [
        "f290f1970f01287eaaffc798a677594a57ebd65e"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Feb 04 22:17:29 2009 +0100"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:13 2009 -0500"
      },
      "message": "[SCSI] libfc: Correct use of ! and \u0026\n\n!ep-\u003eesb_stat is either 1 or 0, and the rightmost bit of ESB_ST_COMPLETE is\nalways 0, making the result of !ep-\u003eesb_stat \u0026 ESB_ST_COMPLETE always 0.\nThus parentheses around the argument to ! seem needed.\n\nThe semantic patch that makes this change is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@@ expression E; constant C; @@\n(\n  !E \u0026 !C\n|\n- !E \u0026 C\n+ !(E \u0026 C)\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "1c9fbafc8c629c89183d6dccec67a8415513b0d1",
      "tree": "895ca90bbf8255568d691b6603414e15b4161887",
      "parents": [
        "5a9ef25b14d39b8413364df12cb8d9bb7a673a32"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sun Jan 04 03:14:11 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:02 2009 -0500"
      },
      "message": "[SCSI] Remove SUGGEST flags\n\nThe SUGGEST_* flags in the SCSI command result have been out of fashion\nfor a while and we don\u0027t actually use them in the error handling.\nRemove the remaining occurrences.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6e7490c73d8cc48e7084ac976c8be7bbaf530acf",
      "tree": "47f6235cca759d562f333542cc9dc4fb355aad5a",
      "parents": [
        "d943aeebc5194f3c6a81fb139ba406040324e4f3"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sun Jan 11 17:38:12 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:57:56 2009 -0500"
      },
      "message": "[SCSI] libfc: fix compile warning\n\nI got the following warnings on IA64:\n\ndrivers/scsi/libfc/fc_lport.c: In function \u0027fc_lport_recv_flogi_req\u0027:\ndrivers/scsi/libfc/fc_lport.c:788: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027u64\u0027\ndrivers/scsi/libfc/fc_lport.c:792: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027u64\u0027\nscsi/libfc/fc_rport.c: In function \u0027fc_rport_recv_plogi_req\u0027:\n/home/fujita/git/linux-2.6/drivers/scsi/libfc/fc_rport.c:968: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 4 has type \u0027u64\u0027\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "422819cfa3a2605a0b3bdc33aaef0bc2feaeaada",
      "tree": "ccf16a42a776c3980acd16b96eb832e84ac01298",
      "parents": [
        "03ec862dff57ca3d1fcb439b99aadc45bc5c2f28"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Feb 27 10:56:11 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Mar 10 09:06:36 2009 -0500"
      },
      "message": "[SCSI] libfc: do not change the fh_rx_id of a recevied frame\n\nWe shouldn\u0027t be altering inbound frames.\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": "b2ab99c9a300e572105d6db7f6efe0a4d1572167",
      "tree": "1cdb9bd208e0cdb317b62f92c2c7879e3bc61335",
      "parents": [
        "34f42a070fc98f5dc07e9fa2338b7b8d1dc347eb"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:50 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Mar 10 09:05:09 2009 -0500"
      },
      "message": "[SCSI] libfc, fcoe: Cleanup function formatting and minor typos\n\n1) There were a few functions with a strange layout, i.e. all\n   arguments on the second line, when not necessary.\n\n   Where ever possible I moved the return value to the same line\n   as the function name. However, when the line was too long\n   to have a single argument on the same line I moved the\n   return value to above line. For example:\n\n   \u003cshort return\u003e \u003cfunction name\u003e(\u003carg 1\u003e, \u003carg2\u003e)\n\n   and\n\n   \u003cvery long return value\u003e\n   \u003cfunction name\u003e(\u003carg1\u003e,\n\t\t   \u003carg2\u003e)\n\n2) Removed one extra whitespace line\n\n3) Fixed two typos\n\nSigned-off-by: Robert Love \u003crobert.w.love@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": "efaf5c085dd2d31757b0ff7886970dfddd8d1808",
      "tree": "c88ab287ed1b78ecad88370c1c8929f17f13c271",
      "parents": [
        "d3b33327cab0c8e9cae2c12d908ca79433c0d1ac"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:34 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:44:36 2009 -0600"
      },
      "message": "[SCSI] libfc: check for err when recv and state is incorrect\n\nIf we\u0027ve just created an interface and the an rport is\nlogging in we may have a request on the wire (say PRLI).\nIf we destroy the interface, we\u0027ll go through each rport\non the disc-\u003erports list and set each rport\u0027s state to NONE.\nThen the lport will reset the EM. The EM reset will send a\nCLOSED event to the prli_resp() handler which will notice\nthat the state !\u003d PRLI. In this case it frees the frame\npointer, decrements the refcount and unlocks the rport.\n\nThe problem is that there isn\u0027t a frame in this case. It\u0027s\njust a pointer with an embedded error code. The free causes\nan Oops.\n\nThis patch moves the error checking to be before the state\nchecking.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d3b33327cab0c8e9cae2c12d908ca79433c0d1ac",
      "tree": "f10e7ed3667498dd1861e311ab37f532e0238963",
      "parents": [
        "23f11f9076fcd6ee20c56e413b11f1b5658e3f82"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:29 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:41:37 2009 -0600"
      },
      "message": "[SCSI] libfc: rename rp to rdata in fc_disc_new_target()\n\nJust rename the variable as per our naming convention.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "23f11f9076fcd6ee20c56e413b11f1b5658e3f82",
      "tree": "84ff5ed722b5a12404d1d839158325d407b11abc",
      "parents": [
        "5101ff99f59aefb72e0c96e82aa32048ac9f8425"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:23 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:41:16 2009 -0600"
      },
      "message": "[SCSI] libfc: correct RPORT_TO_PRIV usage\n\nWe only need to use this macro when assigning a value to\nrport-\u003edd_data. All other accesses should just use dd_data.\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": "f7db2c150cf5082cf74555f30a1305938041de80",
      "tree": "51d92a06ddb32fb0fd7757e67f3e3f8c81b39b0b",
      "parents": [
        "26d9cab558f901051d0b69b2c445c8588931ce8d"
      ],
      "author": {
        "name": "Steve Ma",
        "email": "steve.ma@intel.com",
        "time": "Fri Feb 27 10:55:13 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:40:45 2009 -0600"
      },
      "message": "[SCSI] libfc: exch mgr is freed while lport still retrying sequences\n\nWhen a sequence cannot be delivered to the target, the local\nport will schedule retries, While this process is in progress,\nif we destroy the FCoE interface, the fcoe_sw_destroy routine is\nentered, and the fc_exch_mgr_free(lp-\u003eemp) is called.  Thus\nif fc_exch_alloc() is called when retrying the sequence,\nthe mempool_alloc() will fail to allocate the exchange because\nthe mempool of the exchange manager has already been released.\nThis patch is to cancel any pending retry work of the local\nport before we start to destroy the interface.\n\nAlso, when resetting the local port, we should also stop the\nscheduled pending retries.\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@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "26d9cab558f901051d0b69b2c445c8588931ce8d",
      "tree": "5b7a89a39ba823ef1d1583971a3ec16906aadd83",
      "parents": [
        "6755db1cd4587084be85f860b7aa7c0cc9d776dc"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Fri Feb 27 10:55:07 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:40:06 2009 -0600"
      },
      "message": "[SCSI] libfc: fixed a read IO data integrity issue when a IO data frame lost\n\nThe fc_fcp_complete_locked detected data underrun in this case and set\nthe FC_DATA_UNDRUN but that was ignored by fc_io_compl for all cases\nincluding read underrun.\n\nAdded code to not to ignore FC_DATA_UNDRUN for read IO and instead\nsuggested scsi-ml to retry cmd to  recover from lost data frame.\n\nNot sure if it is okay to ignore FC_DATA_UNDRUN for other case, so let\ncode as is for other cases but removed or-ing with zero valued fsp-\u003ecdb_status\nfor those cases.\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": "6755db1cd4587084be85f860b7aa7c0cc9d776dc",
      "tree": "cdc50e934f61d73a7aa8f5fdc5c454e0375071b9",
      "parents": [
        "bc0e17f691085315ae9303eb5b0883fe16dfe6b1"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Fri Feb 27 10:55:02 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:39:34 2009 -0600"
      },
      "message": "[SCSI] libfc: rport retry on LS_RJT from certain ELS\n\nThis allows any rport ELS to retry on LS_RJT.\n\nThe rport error handling would only retry on resource allocation failures\nand exchange timeouts.  I have a target that will occasionally reject PLOGI\nwhen we do a quick LOGO/PLOGI.  When a critical ELS was rejected, libfc would\nfail silently leaving the rport in a dead state.\n\nThe retry count and delay are managed by fc_rport_error_retry.  If the retry\ncount is exceeded fc_rport_error will be called.  When retrying is not the\ncorrect course of action, fc_rport_error can be called directly.\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@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": "a7e84f2b83f17f8f11da34ccef3ba5a862dc0182",
      "tree": "7cfe6e926cafbd1877e702456b631086d1b8a85c",
      "parents": [
        "78342da3682ec843e3e6301af5c723c88a46c408"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Fri Feb 27 10:54:51 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:37:23 2009 -0600"
      },
      "message": "[SCSI] libfc: fixed a soft lockup issue in fc_exch_recv_abts\n\nThe fc_seq_start_next grabs ep-\u003eex_lock but this lock was already held here,\nso instead called fc_seq_start_next_locked to avoid soft lockup.\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": "78342da3682ec843e3e6301af5c723c88a46c408",
      "tree": "0390655e7f80617db0948e830574de23aef12e1d",
      "parents": [
        "571f824c3cd7b7f5a40ba100f7e576b6b0fe826a"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Fri Feb 27 10:54:46 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:36:56 2009 -0600"
      },
      "message": "[SCSI] libfc: handle RRQ exch timeout\n\nCleanup exchange held due to RRQ when RRQ exch times out, in this case the\nABTS is already done causing RRQ req therefore proceeding with cleanup in\nfc_exch_rrq_resp should be okay to restore exch resource.\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": "571f824c3cd7b7f5a40ba100f7e576b6b0fe826a",
      "tree": "2b3bd0708e541f6a37bcd67c5d71e60272641cd0",
      "parents": [
        "1f6ff364ceda516f88351a8ab640e656beed0b26"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Fri Feb 27 10:54:41 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:36:28 2009 -0600"
      },
      "message": "[SCSI] libfc: when rport goes away (re-plogi), clean up exchanges to/from rport\n\nWhen a rport goes away, libFC does a plogi which will reset exchanges\n    at the rport. Clean exchanges at our end, both in transport and libFC.\n    If transport hooks into exch_mgr_reset, it will call back into\n    fc_exch_mgr_reset() to clean up libFC exchanges.\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": "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"
    }
  ]
}
