)]}'
{
  "log": [
    {
      "commit": "a8b690f98baf9fb1902b8eeab801351ea603fa3a",
      "tree": "b48940354a3236d33e33ca4f1b9169c9545cd551",
      "parents": [
        "83038a2a7062f6cbbdcfaff47284566f060a5af1"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Mon Jun 07 00:43:42 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 07 00:43:42 2010 -0700"
      },
      "message": "tcp: Fix slowness in read /proc/net/tcp\n\nThis patch address a serious performance issue in reading the\nTCP sockets table (/proc/net/tcp).\n\nReading the full table is done by a number of sequential read\noperations.  At each read operation, a seek is done to find the\nlast socket that was previously read.  This seek operation requires\nthat the sockets in the table need to be counted up to the current\nfile position, and to count each of these requires taking a lock for\neach non-empty bucket.  The whole algorithm is O(n^2).\n\nThe fix is to cache the last bucket value, offset within the bucket,\nand the file position returned by the last read operation.   On the\nnext sequential read, the bucket and offset are used to find the\nlast read socket immediately without needing ot scan the previous\nbuckets  the table.  This algorithm t read the whole table is O(n).\n\nThe improvement offered by this patch is easily show by performing\ncat\u0027ing /proc/net/tcp on a machine with a lot of connections.  With\nabout 182K connections in the table, I see the following:\n\n- Without patch\ntime cat /proc/net/tcp \u003e /dev/null\n\nreal\t1m56.729s\nuser\t0m0.214s\nsys\t1m56.344s\n\n- With patch\ntime cat /proc/net/tcp \u003e /dev/null\n\nreal\t0m0.894s\nuser\t0m0.290s\nsys\t0m0.594s\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "83038a2a7062f6cbbdcfaff47284566f060a5af1",
      "tree": "b5cfbfcece86814baa959a54f144af93703baa41",
      "parents": [
        "302b500b27dda8e07b3cb967ff588de84ee87ba4"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:56:03 2010 -0700"
      },
      "message": "tg3: Update version to 3.111\n\nThis patch updates the tg3 version to 3.111.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "302b500b27dda8e07b3cb967ff588de84ee87ba4",
      "tree": "82d7a73a33eedc1759c663954f54bdce11f817a7",
      "parents": [
        "a50d0796b09ad909a25fc75e54eec7f713edeba8"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:38 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:56:03 2010 -0700"
      },
      "message": "tg3: Add 5719 PCI device and phy IDs\n\nThis patch adds the 5719 PCI device and phy IDs.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a50d0796b09ad909a25fc75e54eec7f713edeba8",
      "tree": "8773775c77e2fea96f4f9fda7361185633130631",
      "parents": [
        "9c7df9157889a8f67d2d104fd52f2aacb3826fe7"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:56:02 2010 -0700"
      },
      "message": "tg3: Add 5719 ASIC rev\n\nThis patch adds the 5719 ASIC revision.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c7df9157889a8f67d2d104fd52f2aacb3826fe7",
      "tree": "24c2bab795aeee309fc075f83f752e4df4db7789",
      "parents": [
        "57d8b88030ca9f295bb72ef65228c6d86bed22f6"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:56:01 2010 -0700"
      },
      "message": "tg3: Use devfn to determine function number\n\nThe driver sometimes needs to know which function number the current\ndevice is.  This patch changes the code to use devfn over internal\nregister values.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57d8b88030ca9f295bb72ef65228c6d86bed22f6",
      "tree": "3cafb558c5027cb092080d136d946eee55284305",
      "parents": [
        "2430b031be8d3eb57f22f2df6fb3784564109db0"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:56:01 2010 -0700"
      },
      "message": "tg3: 5717: Allow serdes link via parallel detect\n\nThe 5717 serdes phy brings link up via parallel detection without any\nadditional help from the driver.  This patch changes the\ntg3_setup_fiber_mii_phy() function to detect and allow the use of this\nfeature.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2430b031be8d3eb57f22f2df6fb3784564109db0",
      "tree": "abcdd30bca7f5e2378ef03e8d42a9b9b00015cc4",
      "parents": [
        "2601d8a0049c8b5d29cd5adb844a305a804e505f"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:56:00 2010 -0700"
      },
      "message": "tg3: Allow single MSI-X vector allocations\n\nThis patch changes the code to make it legal to allocate only one MSI-X\nvector.  It also fixes a bug where the driver was not checking for error\nreturn codes from pci_enable_msix().\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2601d8a0049c8b5d29cd5adb844a305a804e505f",
      "tree": "ea2ab7f93806fd5e13004b623d3c8c25b51a380b",
      "parents": [
        "b28f6428af279ffb9e97ee00486a29498b7fcfdc"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:56:00 2010 -0700"
      },
      "message": "tg3: Off-by-one error in RSS setup\n\nThe driver was incorrectly programming the indirection table such that\nrx traffic intended for the second ring went to the first ring, rx\ntraffic intended for the third ring went to the second ring, etc.  This\npatch changes the code so that rx traffic is diverted to the proper\nring.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b28f6428af279ffb9e97ee00486a29498b7fcfdc",
      "tree": "b411e94456bd6af04621648bb288b803915fc9b6",
      "parents": [
        "b1d0521059789a138d19c4f940d6eca7d620a6eb"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:55:59 2010 -0700"
      },
      "message": "tg3: Fix a memory leak on 5717+ devices\n\nThe rx resources for MSI-X interrupt vector 0 were not being freed\ncorrectly.  This happens because the teardown loop continue\u0027s to the\nnext loop iteration if it detects the tx ring for that vector is not\nsetup, thus bypassing the rx teardown code.  This patch moves the\ncall to tg3_rx_prodring_free() earlier in the loop.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1d0521059789a138d19c4f940d6eca7d620a6eb",
      "tree": "fa0cba1674ba1592476aa5940cf8ada89f018158",
      "parents": [
        "f92d9dc1504a964acfe07e8036fa30dcef22d343"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:31 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:55:59 2010 -0700"
      },
      "message": "tg3: Avoid tx lockups on 5755+ devices\n\nIn certain edge conditions, internal tx resources can get corrupted.\nThis patch enables a bit that will fix the problem.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f92d9dc1504a964acfe07e8036fa30dcef22d343",
      "tree": "725728b7cf59480858ad58c1d29a96537fd8f8ce",
      "parents": [
        "eedc765ca4b19a41cf0b921a492ac08d640060d1"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Sat Jun 05 17:24:30 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:55:58 2010 -0700"
      },
      "message": "tg3: Relocate APE mutex regs for 5717+\n\nThe 5717 and later devices relocate the APE mutex registers.  This patch\norganizes the code so that the driver can use the mutex registers in the\nold and new locations.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eedc765ca4b19a41cf0b921a492ac08d640060d1",
      "tree": "95c566c6238cc953e1e336115d2daafe8bcb388f",
      "parents": [
        "e59d44df46edaafb6b637e98d046775524b31104",
        "024a07bacf8287a6ddfa83e9d5b951c5e8b4070e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:42:02 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 17:42:02 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/sfc/net_driver.h\n\tdrivers/net/sfc/siena.c\n"
    },
    {
      "commit": "024a07bacf8287a6ddfa83e9d5b951c5e8b4070e",
      "tree": "1e414be3a1fa1dadaa70f2cac173f7328efb75e4",
      "parents": [
        "8ffb335e8d696affc04f963bf73ce2196f80edb9"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Sun Jun 06 15:38:47 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 15:38:47 2010 -0700"
      },
      "message": "r8169: fix random mdio_write failures\n\nSome configurations need delay between the \"write completed\" indication\nand new write to work reliably.\n\nRealtek driver seems to use longer delay when polling the \"write complete\"\nbit, so it waits long enough between writes with high probability (but\ncould probably break too). This patch adds a new udelay to make sure we\nwait unconditionally some time after the write complete indication.\n\nThis caused a regression with XID 18000000 boards when the board specific\nphy configuration writing many mdio registers was added in commit\n2e955856ff (r8169: phy init for the 8169scd). Some of the configration\nmdio writes would almost always fail, and depending on failure might leave\nthe PHY in non-working state.\n\nSigned-off-by: Timo Teräs \u003ctimo.teras@iki.fi\u003e\nAcked-off-by: Francois Romieu \u003cromieu@fr.zoreil.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8ffb335e8d696affc04f963bf73ce2196f80edb9",
      "tree": "91cbe2f0876ee74971fd396ce59e848242810d0e",
      "parents": [
        "72e09ad107e78d69ff4d3b97a69f0aad2b77280f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Jun 06 15:34:40 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 06 15:34:40 2010 -0700"
      },
      "message": "ip6mr: fix a typo in ip6mr_for_each_table()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e59d44df46edaafb6b637e98d046775524b31104",
      "tree": "9b58688112c6a811b4c5d12747ca8b8a605c1b9b",
      "parents": [
        "59d4289b83b11379d867e2f7146904b19cc96404"
      ],
      "author": {
        "name": "Shirley Ma",
        "email": "xma@us.ibm.com",
        "time": "Sat Jun 05 03:04:50 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 03:04:50 2010 -0700"
      },
      "message": "ixgbevf: Enable GRO by default\n\nEnable GRO by default for performance.\n\nSigned-off-by: Shirley Ma \u003cxma@us.ibm.com\u003e\nAcked-by: Greg Rose \u003cgregory.v.rose@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72e09ad107e78d69ff4d3b97a69f0aad2b77280f",
      "tree": "daa8a97c230802bcbb8149a21172eca2c6155d91",
      "parents": [
        "ca7335948e294faf8adf65f2c95ca18ea78540db"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Jun 05 03:03:30 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 03:03:30 2010 -0700"
      },
      "message": "ipv6: avoid high order allocations\n\nWith mtu\u003d9000, mld_newpack() use order-2 GFP_ATOMIC allocations, that\nare very unreliable, on machines where PAGE_SIZE\u003d4K\n\nLimit allocated skbs to be at most one page. (order-0 allocations)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "59d4289b83b11379d867e2f7146904b19cc96404",
      "tree": "8c2c7d01d411832ce66f58af6cc61f54d3e118a0",
      "parents": [
        "bb1d912323d5dd50e1079e389f4e964be14f0ae3"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "dkirjanov@hera.kernel.org",
        "time": "Wed Jun 02 09:27:04 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:18 2010 -0700"
      },
      "message": "fec: convert legacy PM hooks to dem_pm_ops\n\nThis patch compile tested only.\n\nConvert legacy PM hooks to dev_pm_ops\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb1d912323d5dd50e1079e389f4e964be14f0ae3",
      "tree": "7d20fff2e63bc6add251a56625110257d3ccc45f",
      "parents": [
        "ebd8e4977a87cb81d93c62a9bff0102a9713722f"
      ],
      "author": {
        "name": "Andy Gospodarek",
        "email": "andy@greyhouse.net",
        "time": "Wed Jun 02 08:40:18 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:17 2010 -0700"
      },
      "message": "bonding: allow user-controlled output slave selection\n\nv2: changed bonding module version, modified to apply on top of changes\nfrom previous patch in series, and updated documentation to elaborate on\nmultiqueue awareness that now exists in bonding driver.\n\nThis patch give the user the ability to control the output slave for\nround-robin and active-backup bonding.  Similar functionality was\ndiscussed in the past, but Jay Vosburgh indicated he would rather see a\nfeature like this added to existing modes rather than creating a\ncompletely new mode.  Jay\u0027s thoughts as well as Neil\u0027s input surrounding\nsome of the issues with the first implementation pushed us toward a\ndesign that relied on the queue_mapping rather than skb marks.\nRound-robin and active-backup modes were chosen as the first users of\nthis slave selection as they seemed like the most logical choices when\nconsidering a multi-switch environment.\n\nRound-robin mode works without any modification, but active-backup does\nrequire inclusion of the first patch in this series and setting\nthe \u0027all_slaves_active\u0027 flag.  This will allow reception of unicast traffic on\nany of the backup interfaces.\n\nThis was tested with IPv4-based filters as well as VLAN-based filters\nwith good results.\n\nMore information as well as a configuration example is available in the\npatch to Documentation/networking/bonding.txt.\n\nSigned-off-by: Andy Gospodarek \u003candy@greyhouse.net\u003e\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ebd8e4977a87cb81d93c62a9bff0102a9713722f",
      "tree": "c91a15f48f3156a5ff6d60fd879a97b7e789fe8a",
      "parents": [
        "b78462ebc6a4ef9074aa80abebcdd470dc5f0ce0"
      ],
      "author": {
        "name": "Andy Gospodarek",
        "email": "andy@greyhouse.net",
        "time": "Wed Jun 02 08:39:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:17 2010 -0700"
      },
      "message": "bonding: add all_slaves_active parameter\n\nv2: changed parameter name from \u0027keep_all\u0027 to \u0027all_slaves_active\u0027 and\nskipped setting slaves to inactive rather than creating a new flag at\nJay\u0027s suggestion.\n\nIn an effort to suppress duplicate frames on certain bonding modes\n(specifically the modes that do not require additional configuration on\nthe switch or switches connected to the host), code was added in the\ngeneric receive patch in 2.6.16.  The current behavior works quite well\nfor most users, but there are some times it would be nice to restore old\nfunctionality and allow all frames to make their way up the stack.\n\nThis patch adds support for a new module option and sysfs file called\n\u0027all_slaves_active\u0027 that will restore pre-2.6.16 functionality if the\nuser desires.  The default value is \u00270\u0027 and retains existing behavior,\nbut the user can set it to \u00271\u0027 and allow all frames up if desired.\n\nSigned-off-by: Andy Gospodarek \u003candy@greyhouse.net\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b78462ebc6a4ef9074aa80abebcdd470dc5f0ce0",
      "tree": "fba32dab1e3dca2c5bb5b7d73a64a77c2b6872e8",
      "parents": [
        "55c95e738da85373965cb03b4f975d0fd559865b"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Wed Jun 02 12:24:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:16 2010 -0700"
      },
      "message": "skbuff: add check for non-linear to warn_if_lro and needs_linearize\n\nWe can avoid an unecessary cache miss by checking if the skb is non-linear\nbefore accessing gso_size/gso_type in skb_warn_if_lro, the same can also be\ndone to avoid a cache miss on nr_frags if data_len is 0.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "55c95e738da85373965cb03b4f975d0fd559865b",
      "tree": "dc3fe475c410606c2ce9cb43fcd204fcec805975",
      "parents": [
        "5918e2fb9035b35164002c3a268feaf70b7c04d5"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Thu Jun 03 05:02:29 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:15 2010 -0700"
      },
      "message": "fix return value of __pppoe_xmit() method.\n\nHi,\n __pppoe_xmit() in drivers/net/pppoe always returns 1.\nWhen the methods fails (via goto abort), it should return 0 and not 1.\n\nRegards,\nRami Rosen\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5918e2fb9035b35164002c3a268feaf70b7c04d5",
      "tree": "3a785e4b13971d9b9e9098a339ad005364949852",
      "parents": [
        "af9b4738574b46025de7ccbe75c7b24fd8914379"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Thu Jun 03 00:43:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:15 2010 -0700"
      },
      "message": "syncookies: update mss tables\n\n- ipv6 msstab: account for ipv6 header size\n- ipv4 msstab: add mss for Jumbograms.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af9b4738574b46025de7ccbe75c7b24fd8914379",
      "tree": "6d05b82261ce76e6ecf00131c667292b62d16adf",
      "parents": [
        "2a1d4bd46047efff513600d7ff422bc344f540a6"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Thu Jun 03 00:43:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:14 2010 -0700"
      },
      "message": "syncookies: avoid unneeded tcp header flag double check\n\ncaller: if (!th-\u003erst \u0026\u0026 !th-\u003esyn \u0026\u0026 th-\u003eack)\ncallee: if (!th-\u003eack)\n\nmake the caller only check for !syn (common for 3whs), and move\nthe !rst / ack test to the callee.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2a1d4bd46047efff513600d7ff422bc344f540a6",
      "tree": "de7fc60152e12530c4159809a00560f60d284b25",
      "parents": [
        "87eb743b943a472eb90ac2cbf7f4a132773de77f"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Thu Jun 03 00:43:12 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:14 2010 -0700"
      },
      "message": "syncookies: make v4/v6 synflood warning behaviour the same\n\nboth syn_flood_warning functions print a message, but\nipv4 version only prints a warning if CONFIG_SYN_COOKIES\u003dy.\n\nMake the v4 one behave like the v6 one.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca7335948e294faf8adf65f2c95ca18ea78540db",
      "tree": "998f5c9b854e348f4df2bd20b02c8652529681ce",
      "parents": [
        "c44649216522cd607a4027d2ebf4a8147d3fa94c"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Fri Jun 04 16:14:15 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 04 16:14:48 2010 -0700"
      },
      "message": "X25: remove duplicated #include\n\nRemove duplicated #include(\u0027s) in drivers/net/wan/x25_asy.c\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c44649216522cd607a4027d2ebf4a8147d3fa94c",
      "tree": "e46e153f3f3166353d9818e6b719f1c06b60d4be",
      "parents": [
        "ca55158c6ecb7832a6ad80ac44a14d23bab8cdfc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 03 05:45:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 04 15:56:03 2010 -0700"
      },
      "message": "tcp: use correct net ns in cookie_v4_check()\n\nIts better to make a route lookup in appropriate namespace.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca55158c6ecb7832a6ad80ac44a14d23bab8cdfc",
      "tree": "e701c78b85016247fa5962de0e0793e5b985930e",
      "parents": [
        "536e00e570c87f258554e919c444b81a7002e46d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 03 09:03:58 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 04 15:56:02 2010 -0700"
      },
      "message": "rps: tcp: fix rps_sock_flow_table table updates\n\nI believe a moderate SYN flood attack can corrupt RFS flow table\n(rps_sock_flow_table), making RPS/RFS much less effective.\n\nEven in a normal situation, server handling short lived sessions suffer\nfrom bad steering for the first data packet of a session, if another SYN\npacket is received for another session.\n\nWe do following action in tcp_v4_rcv() :\n\n\tsock_rps_save_rxhash(sk, skb-\u003erxhash);\n\nWe should _not_ do this if sk is a LISTEN socket, as about each\npacket received on a LISTEN socket has a different rxhash than\nprevious one.\n -\u003e RPS_NO_CPU markers are spread all over rps_sock_flow_table.\n\nAlso, it makes sense to protect sk-\u003erxhash field changes with socket\nlock (We currently can change it even if user thread owns the lock\nand might use rxhash)\n\nThis patch moves sock_rps_save_rxhash() to a sock locked section,\nand only for non LISTEN sockets.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "536e00e570c87f258554e919c444b81a7002e46d",
      "tree": "f7e13ef943936edda2bce1c3178c5966dfa3aae6",
      "parents": [
        "57f1553ee5d9f093660cc49098f494e17ed11668"
      ],
      "author": {
        "name": "Ben McKeegan",
        "email": "ben@netservers.co.uk",
        "time": "Wed Jun 02 23:14:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 04 15:56:01 2010 -0700"
      },
      "message": "ppp_generic: fix multilink fragment sizes\n\nFix bug in multilink fragment size calculation introduced by\ncommit 9c705260feea6ae329bc6b6d5f6d2ef0227eda0a\n\"ppp: ppp_mp_explode() redesign\"\n\nSigned-off-by: Ben McKeegan \u003cben@netservers.co.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57f1553ee5d9f093660cc49098f494e17ed11668",
      "tree": "95387158da48c4dde7bb17477f87944c13e2456f",
      "parents": [
        "ca739481662137b8f717bc21f16719cda3c33d6b"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Thu Jun 03 00:42:30 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 04 15:56:01 2010 -0700"
      },
      "message": "syncookies: remove Kconfig text line about disabled-by-default\n\nsyncookies default to on since\ne994b7c901ded7200b525a707c6da71f2cf6d4bb\n(tcp: Don\u0027t make syn cookies initial setting depend on CONFIG_SYSCTL).\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca739481662137b8f717bc21f16719cda3c33d6b",
      "tree": "8faf60448253ee555d8ff466f0a62eb6e3c743ee",
      "parents": [
        "8764ab2ca7ab5055e1ca80f9cfa4970c34acb804"
      ],
      "author": {
        "name": "John Fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Thu Jun 03 17:03:45 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 04 15:56:00 2010 -0700"
      },
      "message": "ixgbe: only check pfc bits in hang logic if pfc is enabled\n\nOnly check pfc bits in hang logic if PFC is enabled.  Previously,\nif DCB was enabled but PFC was disabled the incorrect pause\nbits would be checked.\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nAcked-by: Don Skidmore \u003cdonald.c.skidmore@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8764ab2ca7ab5055e1ca80f9cfa4970c34acb804",
      "tree": "ca0a6ea6c6fabbb98220f5b700981f7f23855f42",
      "parents": [
        "4f4aeb7fd0f7e6ca008bb2147ba36cee13876595"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Fri Jun 04 01:57:38 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 04 15:56:00 2010 -0700"
      },
      "message": "net: check for refcount if pop a stacked dst_entry\n\nxfrm triggers a warning if dst_pop() drops a refcount\non a noref dst. This patch changes dst_pop() to\nskb_dst_pop(). skb_dst_pop() drops the refcnt only\non a refcounted dst. Also we don\u0027t clone the child\ndst_entry, so it is not refcounted and we can use\nskb_dst_set_noref() in xfrm_output_one().\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "87eb743b943a472eb90ac2cbf7f4a132773de77f",
      "tree": "387f7f62cd73d0b2a72fac1b906c7808ae5788e8",
      "parents": [
        "c6d409cfd0fd41e7a0847875e4338ad648c9b96b"
      ],
      "author": {
        "name": "Anirban Chakraborty",
        "email": "anirban.chakraborty@qlogic.com",
        "time": "Thu Jun 03 07:50:56 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 20:03:45 2010 -0700"
      },
      "message": "qlcnic: Fix Compilation Issue when CONFIG_INET was not set\n\nOriginal code was placed incorrectly inside a block of code marked\nwith CONFIG_INET directive. Fix by moving it outside.\n\nSigned-off-by: Anirban Chakraborty \u003canirban.chakraborty@qlogic.com\u003e\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nTested-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6d409cfd0fd41e7a0847875e4338ad648c9b96b",
      "tree": "7f346c6f41db5b448ebab504f3fae6bb0f28cf79",
      "parents": [
        "849c45423c0c108e08d67644728cc9b0ed225fa1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 03 20:03:40 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 20:03:40 2010 -0700"
      },
      "message": "From abbffa2aa9bd6f8df16d0d0a102af677510d8b9a Mon Sep 17 00:00:00 2001\nFrom: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nDate: Thu, 3 Jun 2010 04:29:41 +0000\nSubject: [PATCH 2/3] net: net/socket.c and net/compat.c cleanups\n\ncleanup patch, to match modern coding style.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n---\n net/compat.c |   47 ++++++++---------\n net/socket.c |  165 ++++++++++++++++++++++++++++------------------------------\n 2 files changed, 102 insertions(+), 110 deletions(-)\n\ndiff --git a/net/compat.c b/net/compat.c\nindex 1cf7590..63d260e 100644\n--- a/net/compat.c\n+++ b/net/compat.c\n@@ -81,7 +81,7 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,\n \tint tot_len;\n\n \tif (kern_msg-\u003emsg_namelen) {\n-\t\tif (mode\u003d\u003dVERIFY_READ) {\n+\t\tif (mode \u003d\u003d VERIFY_READ) {\n \t\t\tint err \u003d move_addr_to_kernel(kern_msg-\u003emsg_name,\n \t\t\t\t\t\t      kern_msg-\u003emsg_namelen,\n \t\t\t\t\t\t      kern_address);\n@@ -354,7 +354,7 @@ static int do_set_attach_filter(struct socket *sock, int level, int optname,\n static int do_set_sock_timeout(struct socket *sock, int level,\n \t\tint optname, char __user *optval, unsigned int optlen)\n {\n-\tstruct compat_timeval __user *up \u003d (struct compat_timeval __user *) optval;\n+\tstruct compat_timeval __user *up \u003d (struct compat_timeval __user *)optval;\n \tstruct timeval ktime;\n \tmm_segment_t old_fs;\n \tint err;\n@@ -367,7 +367,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,\n \t\treturn -EFAULT;\n \told_fs \u003d get_fs();\n \tset_fs(KERNEL_DS);\n-\terr \u003d sock_setsockopt(sock, level, optname, (char *) \u0026ktime, sizeof(ktime));\n+\terr \u003d sock_setsockopt(sock, level, optname, (char *)\u0026ktime, sizeof(ktime));\n \tset_fs(old_fs);\n\n \treturn err;\n@@ -389,11 +389,10 @@ asmlinkage long compat_sys_setsockopt(int fd, int level, int optname,\n \t\t\t\tchar __user *optval, unsigned int optlen)\n {\n \tint err;\n-\tstruct socket *sock;\n+\tstruct socket *sock \u003d sockfd_lookup(fd, \u0026err);\n\n-\tif ((sock \u003d sockfd_lookup(fd, \u0026err))!\u003dNULL)\n-\t{\n-\t\terr \u003d security_socket_setsockopt(sock,level,optname);\n+\tif (sock) {\n+\t\terr \u003d security_socket_setsockopt(sock, level, optname);\n \t\tif (err) {\n \t\t\tsockfd_put(sock);\n \t\t\treturn err;\n@@ -453,7 +452,7 @@ static int compat_sock_getsockopt(struct socket *sock, int level, int optname,\n int compat_sock_get_timestamp(struct sock *sk, struct timeval __user *userstamp)\n {\n \tstruct compat_timeval __user *ctv \u003d\n-\t\t\t(struct compat_timeval __user*) userstamp;\n+\t\t\t(struct compat_timeval __user *) userstamp;\n \tint err \u003d -ENOENT;\n \tstruct timeval tv;\n\n@@ -477,7 +476,7 @@ EXPORT_SYMBOL(compat_sock_get_timestamp);\n int compat_sock_get_timestampns(struct sock *sk, struct timespec __user *userstamp)\n {\n \tstruct compat_timespec __user *ctv \u003d\n-\t\t\t(struct compat_timespec __user*) userstamp;\n+\t\t\t(struct compat_timespec __user *) userstamp;\n \tint err \u003d -ENOENT;\n \tstruct timespec ts;\n\n@@ -502,12 +501,10 @@ asmlinkage long compat_sys_getsockopt(int fd, int level, int optname,\n \t\t\t\tchar __user *optval, int __user *optlen)\n {\n \tint err;\n-\tstruct socket *sock;\n+\tstruct socket *sock \u003d sockfd_lookup(fd, \u0026err);\n\n-\tif ((sock \u003d sockfd_lookup(fd, \u0026err))!\u003dNULL)\n-\t{\n-\t\terr \u003d security_socket_getsockopt(sock, level,\n-\t\t\t\t\t\t\t   optname);\n+\tif (sock) {\n+\t\terr \u003d security_socket_getsockopt(sock, level, optname);\n \t\tif (err) {\n \t\t\tsockfd_put(sock);\n \t\t\treturn err;\n@@ -557,7 +554,7 @@ struct compat_group_filter {\n\n int compat_mc_setsockopt(struct sock *sock, int level, int optname,\n \tchar __user *optval, unsigned int optlen,\n-\tint (*setsockopt)(struct sock *,int,int,char __user *,unsigned int))\n+\tint (*setsockopt)(struct sock *, int, int, char __user *, unsigned int))\n {\n \tchar __user\t*koptval \u003d optval;\n \tint\t\tkoptlen \u003d optlen;\n@@ -640,12 +637,11 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,\n \t}\n \treturn setsockopt(sock, level, optname, koptval, koptlen);\n }\n-\n EXPORT_SYMBOL(compat_mc_setsockopt);\n\n int compat_mc_getsockopt(struct sock *sock, int level, int optname,\n \tchar __user *optval, int __user *optlen,\n-\tint (*getsockopt)(struct sock *,int,int,char __user *,int __user *))\n+\tint (*getsockopt)(struct sock *, int, int, char __user *, int __user *))\n {\n \tstruct compat_group_filter __user *gf32 \u003d (void *)optval;\n \tstruct group_filter __user *kgf;\n@@ -681,7 +677,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,\n \t    __put_user(interface, \u0026kgf-\u003egf_interface) ||\n \t    __put_user(fmode, \u0026kgf-\u003egf_fmode) ||\n \t    __put_user(numsrc, \u0026kgf-\u003egf_numsrc) ||\n-\t    copy_in_user(\u0026kgf-\u003egf_group,\u0026gf32-\u003egf_group,sizeof(kgf-\u003egf_group)))\n+\t    copy_in_user(\u0026kgf-\u003egf_group, \u0026gf32-\u003egf_group, sizeof(kgf-\u003egf_group)))\n \t\treturn -EFAULT;\n\n \terr \u003d getsockopt(sock, level, optname, (char __user *)kgf, koptlen);\n@@ -714,21 +710,22 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,\n \t\tcopylen \u003d numsrc * sizeof(gf32-\u003egf_slist[0]);\n \t\tif (copylen \u003e klen)\n \t\t\tcopylen \u003d klen;\n-\t        if (copy_in_user(gf32-\u003egf_slist, kgf-\u003egf_slist, copylen))\n+\t\tif (copy_in_user(gf32-\u003egf_slist, kgf-\u003egf_slist, copylen))\n \t\t\treturn -EFAULT;\n \t}\n \treturn err;\n }\n-\n EXPORT_SYMBOL(compat_mc_getsockopt);\n\n /* Argument list sizes for compat_sys_socketcall */\n #define AL(x) ((x) * sizeof(u32))\n-static unsigned char nas[20]\u003d{AL(0),AL(3),AL(3),AL(3),AL(2),AL(3),\n-\t\t\t\tAL(3),AL(3),AL(4),AL(4),AL(4),AL(6),\n-\t\t\t\tAL(6),AL(2),AL(5),AL(5),AL(3),AL(3),\n-\t\t\t\tAL(4),AL(5)};\n+static unsigned char nas[20] \u003d {\n+\tAL(0), AL(3), AL(3), AL(3), AL(2), AL(3),\n+\tAL(3), AL(3), AL(4), AL(4), AL(4), AL(6),\n+\tAL(6), AL(2), AL(5), AL(5), AL(3), AL(3),\n+\tAL(4), AL(5)\n+};\n #undef AL\n\n asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, unsigned flags)\n@@ -827,7 +824,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args)\n \t\t\t\t\t  compat_ptr(a[4]), compat_ptr(a[5]));\n \t\tbreak;\n \tcase SYS_SHUTDOWN:\n-\t\tret \u003d sys_shutdown(a0,a1);\n+\t\tret \u003d sys_shutdown(a0, a1);\n \t\tbreak;\n \tcase SYS_SETSOCKOPT:\n \t\tret \u003d compat_sys_setsockopt(a0, a1, a[2],\ndiff --git a/net/socket.c b/net/socket.c\nindex 367d547..b63c051 100644\n--- a/net/socket.c\n+++ b/net/socket.c\n@@ -124,7 +124,7 @@ static int sock_fasync(int fd, struct file *filp, int on);\n static ssize_t sock_sendpage(struct file *file, struct page *page,\n \t\t\t     int offset, size_t size, loff_t *ppos, int more);\n static ssize_t sock_splice_read(struct file *file, loff_t *ppos,\n-\t\t\t        struct pipe_inode_info *pipe, size_t len,\n+\t\t\t\tstruct pipe_inode_info *pipe, size_t len,\n \t\t\t\tunsigned int flags);\n\n /*\n@@ -162,7 +162,7 @@ static const struct net_proto_family *net_families[NPROTO] __read_mostly;\n  *\tStatistics counters of the socket lists\n  */\n\n-static DEFINE_PER_CPU(int, sockets_in_use) \u003d 0;\n+static DEFINE_PER_CPU(int, sockets_in_use);\n\n /*\n  * Support routines.\n@@ -309,9 +309,9 @@ static int init_inodecache(void)\n }\n\n static const struct super_operations sockfs_ops \u003d {\n-\t.alloc_inode \u003d\tsock_alloc_inode,\n-\t.destroy_inode \u003dsock_destroy_inode,\n-\t.statfs \u003d\tsimple_statfs,\n+\t.alloc_inode\t\u003d sock_alloc_inode,\n+\t.destroy_inode\t\u003d sock_destroy_inode,\n+\t.statfs\t\t\u003d simple_statfs,\n };\n\n static int sockfs_get_sb(struct file_system_type *fs_type,\n@@ -411,6 +411,7 @@ int sock_map_fd(struct socket *sock, int flags)\n\n \treturn fd;\n }\n+EXPORT_SYMBOL(sock_map_fd);\n\n static struct socket *sock_from_file(struct file *file, int *err)\n {\n@@ -422,7 +423,7 @@ static struct socket *sock_from_file(struct file *file, int *err)\n }\n\n /**\n- *\tsockfd_lookup\t- \tGo from a file number to its socket slot\n+ *\tsockfd_lookup - Go from a file number to its socket slot\n  *\t@fd: file handle\n  *\t@err: pointer to an error code return\n  *\n@@ -450,6 +451,7 @@ struct socket *sockfd_lookup(int fd, int *err)\n \t\tfput(file);\n \treturn sock;\n }\n+EXPORT_SYMBOL(sockfd_lookup);\n\n static struct socket *sockfd_lookup_light(int fd, int *err, int *fput_needed)\n {\n@@ -540,6 +542,7 @@ void sock_release(struct socket *sock)\n \t}\n \tsock-\u003efile \u003d NULL;\n }\n+EXPORT_SYMBOL(sock_release);\n\n int sock_tx_timestamp(struct msghdr *msg, struct sock *sk,\n \t\t      union skb_shared_tx *shtx)\n@@ -586,6 +589,7 @@ int sock_sendmsg(struct socket *sock, struct msghdr *msg, size_t size)\n \t\tret \u003d wait_on_sync_kiocb(\u0026iocb);\n \treturn ret;\n }\n+EXPORT_SYMBOL(sock_sendmsg);\n\n int kernel_sendmsg(struct socket *sock, struct msghdr *msg,\n \t\t   struct kvec *vec, size_t num, size_t size)\n@@ -604,6 +608,7 @@ int kernel_sendmsg(struct socket *sock, struct msghdr *msg,\n \tset_fs(oldfs);\n \treturn result;\n }\n+EXPORT_SYMBOL(kernel_sendmsg);\n\n static int ktime2ts(ktime_t kt, struct timespec *ts)\n {\n@@ -664,7 +669,6 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,\n \t\tput_cmsg(msg, SOL_SOCKET,\n \t\t\t SCM_TIMESTAMPING, sizeof(ts), \u0026ts);\n }\n-\n EXPORT_SYMBOL_GPL(__sock_recv_timestamp);\n\n inline void sock_recv_drops(struct msghdr *msg, struct sock *sk, struct sk_buff *skb)\n@@ -720,6 +724,7 @@ int sock_recvmsg(struct socket *sock, struct msghdr *msg,\n \t\tret \u003d wait_on_sync_kiocb(\u0026iocb);\n \treturn ret;\n }\n+EXPORT_SYMBOL(sock_recvmsg);\n\n static int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg,\n \t\t\t      size_t size, int flags)\n@@ -752,6 +757,7 @@ int kernel_recvmsg(struct socket *sock, struct msghdr *msg,\n \tset_fs(oldfs);\n \treturn result;\n }\n+EXPORT_SYMBOL(kernel_recvmsg);\n\n static void sock_aio_dtor(struct kiocb *iocb)\n {\n@@ -774,7 +780,7 @@ static ssize_t sock_sendpage(struct file *file, struct page *page,\n }\n\n static ssize_t sock_splice_read(struct file *file, loff_t *ppos,\n-\t\t\t        struct pipe_inode_info *pipe, size_t len,\n+\t\t\t\tstruct pipe_inode_info *pipe, size_t len,\n \t\t\t\tunsigned int flags)\n {\n \tstruct socket *sock \u003d file-\u003eprivate_data;\n@@ -887,7 +893,7 @@ static ssize_t sock_aio_write(struct kiocb *iocb, const struct iovec *iov,\n  */\n\n static DEFINE_MUTEX(br_ioctl_mutex);\n-static int (*br_ioctl_hook) (struct net *, unsigned int cmd, void __user *arg) \u003d NULL;\n+static int (*br_ioctl_hook) (struct net *, unsigned int cmd, void __user *arg);\n\n void brioctl_set(int (*hook) (struct net *, unsigned int, void __user *))\n {\n@@ -895,7 +901,6 @@ void brioctl_set(int (*hook) (struct net *, unsigned int, void __user *))\n \tbr_ioctl_hook \u003d hook;\n \tmutex_unlock(\u0026br_ioctl_mutex);\n }\n-\n EXPORT_SYMBOL(brioctl_set);\n\n static DEFINE_MUTEX(vlan_ioctl_mutex);\n@@ -907,7 +912,6 @@ void vlan_ioctl_set(int (*hook) (struct net *, void __user *))\n \tvlan_ioctl_hook \u003d hook;\n \tmutex_unlock(\u0026vlan_ioctl_mutex);\n }\n-\n EXPORT_SYMBOL(vlan_ioctl_set);\n\n static DEFINE_MUTEX(dlci_ioctl_mutex);\n@@ -919,7 +923,6 @@ void dlci_ioctl_set(int (*hook) (unsigned int, void __user *))\n \tdlci_ioctl_hook \u003d hook;\n \tmutex_unlock(\u0026dlci_ioctl_mutex);\n }\n-\n EXPORT_SYMBOL(dlci_ioctl_set);\n\n static long sock_do_ioctl(struct net *net, struct socket *sock,\n@@ -1047,6 +1050,7 @@ out_release:\n \tsock \u003d NULL;\n \tgoto out;\n }\n+EXPORT_SYMBOL(sock_create_lite);\n\n /* No kernel lock held - perfect */\n static unsigned int sock_poll(struct file *file, poll_table *wait)\n@@ -1147,6 +1151,7 @@ call_kill:\n \trcu_read_unlock();\n \treturn 0;\n }\n+EXPORT_SYMBOL(sock_wake_async);\n\n static int __sock_create(struct net *net, int family, int type, int protocol,\n \t\t\t struct socket **res, int kern)\n@@ -1265,11 +1270,13 @@ int sock_create(int family, int type, int protocol, struct socket **res)\n {\n \treturn __sock_create(current-\u003ensproxy-\u003enet_ns, family, type, protocol, res, 0);\n }\n+EXPORT_SYMBOL(sock_create);\n\n int sock_create_kern(int family, int type, int protocol, struct socket **res)\n {\n \treturn __sock_create(\u0026init_net, family, type, protocol, res, 1);\n }\n+EXPORT_SYMBOL(sock_create_kern);\n\n SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)\n {\n@@ -1474,7 +1481,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,\n \t\tgoto out;\n\n \terr \u003d -ENFILE;\n-\tif (!(newsock \u003d sock_alloc()))\n+\tnewsock \u003d sock_alloc();\n+\tif (!newsock)\n \t\tgoto out_put;\n\n \tnewsock-\u003etype \u003d sock-\u003etype;\n@@ -1861,8 +1869,7 @@ SYSCALL_DEFINE3(sendmsg, int, fd, struct msghdr __user *, msg, unsigned, flags)\n \tif (MSG_CMSG_COMPAT \u0026 flags) {\n \t\tif (get_compat_msghdr(\u0026msg_sys, msg_compat))\n \t\t\treturn -EFAULT;\n-\t}\n-\telse if (copy_from_user(\u0026msg_sys, msg, sizeof(struct msghdr)))\n+\t} else if (copy_from_user(\u0026msg_sys, msg, sizeof(struct msghdr)))\n \t\treturn -EFAULT;\n\n \tsock \u003d sockfd_lookup_light(fd, \u0026err, \u0026fput_needed);\n@@ -1964,8 +1971,7 @@ static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg,\n \tif (MSG_CMSG_COMPAT \u0026 flags) {\n \t\tif (get_compat_msghdr(msg_sys, msg_compat))\n \t\t\treturn -EFAULT;\n-\t}\n-\telse if (copy_from_user(msg_sys, msg, sizeof(struct msghdr)))\n+\t} else if (copy_from_user(msg_sys, msg, sizeof(struct msghdr)))\n \t\treturn -EFAULT;\n\n \terr \u003d -EMSGSIZE;\n@@ -2191,10 +2197,10 @@ SYSCALL_DEFINE5(recvmmsg, int, fd, struct mmsghdr __user *, mmsg,\n /* Argument list sizes for sys_socketcall */\n #define AL(x) ((x) * sizeof(unsigned long))\n static const unsigned char nargs[20] \u003d {\n-\tAL(0),AL(3),AL(3),AL(3),AL(2),AL(3),\n-\tAL(3),AL(3),AL(4),AL(4),AL(4),AL(6),\n-\tAL(6),AL(2),AL(5),AL(5),AL(3),AL(3),\n-\tAL(4),AL(5)\n+\tAL(0), AL(3), AL(3), AL(3), AL(2), AL(3),\n+\tAL(3), AL(3), AL(4), AL(4), AL(4), AL(6),\n+\tAL(6), AL(2), AL(5), AL(5), AL(3), AL(3),\n+\tAL(4), AL(5)\n };\n\n #undef AL\n@@ -2340,6 +2346,7 @@ int sock_register(const struct net_proto_family *ops)\n \tprintk(KERN_INFO \"NET: Registered protocol family %d\\n\", ops-\u003efamily);\n \treturn err;\n }\n+EXPORT_SYMBOL(sock_register);\n\n /**\n  *\tsock_unregister - remove a protocol handler\n@@ -2366,6 +2373,7 @@ void sock_unregister(int family)\n\n \tprintk(KERN_INFO \"NET: Unregistered protocol family %d\\n\", family);\n }\n+EXPORT_SYMBOL(sock_unregister);\n\n static int __init sock_init(void)\n {\n@@ -2490,13 +2498,13 @@ static int dev_ifconf(struct net *net, struct compat_ifconf __user *uifc32)\n \t\tifc.ifc_req \u003d NULL;\n \t\tuifc \u003d compat_alloc_user_space(sizeof(struct ifconf));\n \t} else {\n-\t\tsize_t len \u003d((ifc32.ifc_len / sizeof (struct compat_ifreq)) + 1) *\n-\t\t\tsizeof (struct ifreq);\n+\t\tsize_t len \u003d ((ifc32.ifc_len / sizeof(struct compat_ifreq)) + 1) *\n+\t\t\tsizeof(struct ifreq);\n \t\tuifc \u003d compat_alloc_user_space(sizeof(struct ifconf) + len);\n \t\tifc.ifc_len \u003d len;\n \t\tifr \u003d ifc.ifc_req \u003d (void __user *)(uifc + 1);\n \t\tifr32 \u003d compat_ptr(ifc32.ifcbuf);\n-\t\tfor (i \u003d 0; i \u003c ifc32.ifc_len; i +\u003d sizeof (struct compat_ifreq)) {\n+\t\tfor (i \u003d 0; i \u003c ifc32.ifc_len; i +\u003d sizeof(struct compat_ifreq)) {\n \t\t\tif (copy_in_user(ifr, ifr32, sizeof(struct compat_ifreq)))\n \t\t\t\treturn -EFAULT;\n \t\t\tifr++;\n@@ -2516,9 +2524,9 @@ static int dev_ifconf(struct net *net, struct compat_ifconf __user *uifc32)\n \tifr \u003d ifc.ifc_req;\n \tifr32 \u003d compat_ptr(ifc32.ifcbuf);\n \tfor (i \u003d 0, j \u003d 0;\n-             i + sizeof (struct compat_ifreq) \u003c\u003d ifc32.ifc_len \u0026\u0026 j \u003c ifc.ifc_len;\n-\t     i +\u003d sizeof (struct compat_ifreq), j +\u003d sizeof (struct ifreq)) {\n-\t\tif (copy_in_user(ifr32, ifr, sizeof (struct compat_ifreq)))\n+\t     i + sizeof(struct compat_ifreq) \u003c\u003d ifc32.ifc_len \u0026\u0026 j \u003c ifc.ifc_len;\n+\t     i +\u003d sizeof(struct compat_ifreq), j +\u003d sizeof(struct ifreq)) {\n+\t\tif (copy_in_user(ifr32, ifr, sizeof(struct compat_ifreq)))\n \t\t\treturn -EFAULT;\n \t\tifr32++;\n \t\tifr++;\n@@ -2567,7 +2575,7 @@ static int compat_siocwandev(struct net *net, struct compat_ifreq __user *uifr32\n \tcompat_uptr_t uptr32;\n \tstruct ifreq __user *uifr;\n\n-\tuifr \u003d compat_alloc_user_space(sizeof (*uifr));\n+\tuifr \u003d compat_alloc_user_space(sizeof(*uifr));\n \tif (copy_in_user(uifr, uifr32, sizeof(struct compat_ifreq)))\n \t\treturn -EFAULT;\n\n@@ -2601,9 +2609,9 @@ static int bond_ioctl(struct net *net, unsigned int cmd,\n \t\t\treturn -EFAULT;\n\n \t\told_fs \u003d get_fs();\n-\t\tset_fs (KERNEL_DS);\n+\t\tset_fs(KERNEL_DS);\n \t\terr \u003d dev_ioctl(net, cmd, \u0026kifr);\n-\t\tset_fs (old_fs);\n+\t\tset_fs(old_fs);\n\n \t\treturn err;\n \tcase SIOCBONDSLAVEINFOQUERY:\n@@ -2710,9 +2718,9 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,\n \t\treturn -EFAULT;\n\n \told_fs \u003d get_fs();\n-\tset_fs (KERNEL_DS);\n+\tset_fs(KERNEL_DS);\n \terr \u003d dev_ioctl(net, cmd, (void __user *)\u0026ifr);\n-\tset_fs (old_fs);\n+\tset_fs(old_fs);\n\n \tif (cmd \u003d\u003d SIOCGIFMAP \u0026\u0026 !err) {\n \t\terr \u003d copy_to_user(uifr32, \u0026ifr, sizeof(ifr.ifr_name));\n@@ -2734,7 +2742,7 @@ static int compat_siocshwtstamp(struct net *net, struct compat_ifreq __user *uif\n \tcompat_uptr_t uptr32;\n \tstruct ifreq __user *uifr;\n\n-\tuifr \u003d compat_alloc_user_space(sizeof (*uifr));\n+\tuifr \u003d compat_alloc_user_space(sizeof(*uifr));\n \tif (copy_in_user(uifr, uifr32, sizeof(struct compat_ifreq)))\n \t\treturn -EFAULT;\n\n@@ -2750,20 +2758,20 @@ static int compat_siocshwtstamp(struct net *net, struct compat_ifreq __user *uif\n }\n\n struct rtentry32 {\n-\tu32   \t\trt_pad1;\n+\tu32\t\trt_pad1;\n \tstruct sockaddr rt_dst;         /* target address               */\n \tstruct sockaddr rt_gateway;     /* gateway addr (RTF_GATEWAY)   */\n \tstruct sockaddr rt_genmask;     /* target network mask (IP)     */\n-\tunsigned short  rt_flags;\n-\tshort           rt_pad2;\n-\tu32   \t\trt_pad3;\n-\tunsigned char   rt_tos;\n-\tunsigned char   rt_class;\n-\tshort           rt_pad4;\n-\tshort           rt_metric;      /* +1 for binary compatibility! */\n+\tunsigned short\trt_flags;\n+\tshort\t\trt_pad2;\n+\tu32\t\trt_pad3;\n+\tunsigned char\trt_tos;\n+\tunsigned char\trt_class;\n+\tshort\t\trt_pad4;\n+\tshort\t\trt_metric;      /* +1 for binary compatibility! */\n \t/* char * */ u32 rt_dev;        /* forcing the device at add    */\n-\tu32   \t\trt_mtu;         /* per route MTU/Window         */\n-\tu32   \t\trt_window;      /* Window clamping              */\n+\tu32\t\trt_mtu;         /* per route MTU/Window         */\n+\tu32\t\trt_window;      /* Window clamping              */\n \tunsigned short  rt_irtt;        /* Initial RTT                  */\n };\n\n@@ -2793,29 +2801,29 @@ static int routing_ioctl(struct net *net, struct socket *sock,\n\n \tif (sock \u0026\u0026 sock-\u003esk \u0026\u0026 sock-\u003esk-\u003esk_family \u003d\u003d AF_INET6) { /* ipv6 */\n \t\tstruct in6_rtmsg32 __user *ur6 \u003d argp;\n-\t\tret \u003d copy_from_user (\u0026r6.rtmsg_dst, \u0026(ur6-\u003ertmsg_dst),\n+\t\tret \u003d copy_from_user(\u0026r6.rtmsg_dst, \u0026(ur6-\u003ertmsg_dst),\n \t\t\t3 * sizeof(struct in6_addr));\n-\t\tret |\u003d __get_user (r6.rtmsg_type, \u0026(ur6-\u003ertmsg_type));\n-\t\tret |\u003d __get_user (r6.rtmsg_dst_len, \u0026(ur6-\u003ertmsg_dst_len));\n-\t\tret |\u003d __get_user (r6.rtmsg_src_len, \u0026(ur6-\u003ertmsg_src_len));\n-\t\tret |\u003d __get_user (r6.rtmsg_metric, \u0026(ur6-\u003ertmsg_metric));\n-\t\tret |\u003d __get_user (r6.rtmsg_info, \u0026(ur6-\u003ertmsg_info));\n-\t\tret |\u003d __get_user (r6.rtmsg_flags, \u0026(ur6-\u003ertmsg_flags));\n-\t\tret |\u003d __get_user (r6.rtmsg_ifindex, \u0026(ur6-\u003ertmsg_ifindex));\n+\t\tret |\u003d __get_user(r6.rtmsg_type, \u0026(ur6-\u003ertmsg_type));\n+\t\tret |\u003d __get_user(r6.rtmsg_dst_len, \u0026(ur6-\u003ertmsg_dst_len));\n+\t\tret |\u003d __get_user(r6.rtmsg_src_len, \u0026(ur6-\u003ertmsg_src_len));\n+\t\tret |\u003d __get_user(r6.rtmsg_metric, \u0026(ur6-\u003ertmsg_metric));\n+\t\tret |\u003d __get_user(r6.rtmsg_info, \u0026(ur6-\u003ertmsg_info));\n+\t\tret |\u003d __get_user(r6.rtmsg_flags, \u0026(ur6-\u003ertmsg_flags));\n+\t\tret |\u003d __get_user(r6.rtmsg_ifindex, \u0026(ur6-\u003ertmsg_ifindex));\n\n \t\tr \u003d (void *) \u0026r6;\n \t} else { /* ipv4 */\n \t\tstruct rtentry32 __user *ur4 \u003d argp;\n-\t\tret \u003d copy_from_user (\u0026r4.rt_dst, \u0026(ur4-\u003ert_dst),\n+\t\tret \u003d copy_from_user(\u0026r4.rt_dst, \u0026(ur4-\u003ert_dst),\n \t\t\t\t\t3 * sizeof(struct sockaddr));\n-\t\tret |\u003d __get_user (r4.rt_flags, \u0026(ur4-\u003ert_flags));\n-\t\tret |\u003d __get_user (r4.rt_metric, \u0026(ur4-\u003ert_metric));\n-\t\tret |\u003d __get_user (r4.rt_mtu, \u0026(ur4-\u003ert_mtu));\n-\t\tret |\u003d __get_user (r4.rt_window, \u0026(ur4-\u003ert_window));\n-\t\tret |\u003d __get_user (r4.rt_irtt, \u0026(ur4-\u003ert_irtt));\n-\t\tret |\u003d __get_user (rtdev, \u0026(ur4-\u003ert_dev));\n+\t\tret |\u003d __get_user(r4.rt_flags, \u0026(ur4-\u003ert_flags));\n+\t\tret |\u003d __get_user(r4.rt_metric, \u0026(ur4-\u003ert_metric));\n+\t\tret |\u003d __get_user(r4.rt_mtu, \u0026(ur4-\u003ert_mtu));\n+\t\tret |\u003d __get_user(r4.rt_window, \u0026(ur4-\u003ert_window));\n+\t\tret |\u003d __get_user(r4.rt_irtt, \u0026(ur4-\u003ert_irtt));\n+\t\tret |\u003d __get_user(rtdev, \u0026(ur4-\u003ert_dev));\n \t\tif (rtdev) {\n-\t\t\tret |\u003d copy_from_user (devname, compat_ptr(rtdev), 15);\n+\t\t\tret |\u003d copy_from_user(devname, compat_ptr(rtdev), 15);\n \t\t\tr4.rt_dev \u003d devname; devname[15] \u003d 0;\n \t\t} else\n \t\t\tr4.rt_dev \u003d NULL;\n@@ -2828,9 +2836,9 @@ static int routing_ioctl(struct net *net, struct socket *sock,\n \t\tgoto out;\n \t}\n\n-\tset_fs (KERNEL_DS);\n+\tset_fs(KERNEL_DS);\n \tret \u003d sock_do_ioctl(net, sock, cmd, (unsigned long) r);\n-\tset_fs (old_fs);\n+\tset_fs(old_fs);\n\n out:\n \treturn ret;\n@@ -2993,11 +3001,13 @@ int kernel_bind(struct socket *sock, struct sockaddr *addr, int addrlen)\n {\n \treturn sock-\u003eops-\u003ebind(sock, addr, addrlen);\n }\n+EXPORT_SYMBOL(kernel_bind);\n\n int kernel_listen(struct socket *sock, int backlog)\n {\n \treturn sock-\u003eops-\u003elisten(sock, backlog);\n }\n+EXPORT_SYMBOL(kernel_listen);\n\n int kernel_accept(struct socket *sock, struct socket **newsock, int flags)\n {\n@@ -3022,24 +3032,28 @@ int kernel_accept(struct socket *sock, struct socket **newsock, int flags)\n done:\n \treturn err;\n }\n+EXPORT_SYMBOL(kernel_accept);\n\n int kernel_connect(struct socket *sock, struct sockaddr *addr, int addrlen,\n \t\t   int flags)\n {\n \treturn sock-\u003eops-\u003econnect(sock, addr, addrlen, flags);\n }\n+EXPORT_SYMBOL(kernel_connect);\n\n int kernel_getsockname(struct socket *sock, struct sockaddr *addr,\n \t\t\t int *addrlen)\n {\n \treturn sock-\u003eops-\u003egetname(sock, addr, addrlen, 0);\n }\n+EXPORT_SYMBOL(kernel_getsockname);\n\n int kernel_getpeername(struct socket *sock, struct sockaddr *addr,\n \t\t\t int *addrlen)\n {\n \treturn sock-\u003eops-\u003egetname(sock, addr, addrlen, 1);\n }\n+EXPORT_SYMBOL(kernel_getpeername);\n\n int kernel_getsockopt(struct socket *sock, int level, int optname,\n \t\t\tchar *optval, int *optlen)\n@@ -3056,6 +3070,7 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,\n \tset_fs(oldfs);\n \treturn err;\n }\n+EXPORT_SYMBOL(kernel_getsockopt);\n\n int kernel_setsockopt(struct socket *sock, int level, int optname,\n \t\t\tchar *optval, unsigned int optlen)\n@@ -3072,6 +3087,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,\n \tset_fs(oldfs);\n \treturn err;\n }\n+EXPORT_SYMBOL(kernel_setsockopt);\n\n int kernel_sendpage(struct socket *sock, struct page *page, int offset,\n \t\t    size_t size, int flags)\n@@ -3083,6 +3099,7 @@ int kernel_sendpage(struct socket *sock, struct page *page, int offset,\n\n \treturn sock_no_sendpage(sock, page, offset, size, flags);\n }\n+EXPORT_SYMBOL(kernel_sendpage);\n\n int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg)\n {\n@@ -3095,33 +3112,11 @@ int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg)\n\n \treturn err;\n }\n+EXPORT_SYMBOL(kernel_sock_ioctl);\n\n int kernel_sock_shutdown(struct socket *sock, enum sock_shutdown_cmd how)\n {\n \treturn sock-\u003eops-\u003eshutdown(sock, how);\n }\n-\n-EXPORT_SYMBOL(sock_create);\n-EXPORT_SYMBOL(sock_create_kern);\n-EXPORT_SYMBOL(sock_create_lite);\n-EXPORT_SYMBOL(sock_map_fd);\n-EXPORT_SYMBOL(sock_recvmsg);\n-EXPORT_SYMBOL(sock_register);\n-EXPORT_SYMBOL(sock_release);\n-EXPORT_SYMBOL(sock_sendmsg);\n-EXPORT_SYMBOL(sock_unregister);\n-EXPORT_SYMBOL(sock_wake_async);\n-EXPORT_SYMBOL(sockfd_lookup);\n-EXPORT_SYMBOL(kernel_sendmsg);\n-EXPORT_SYMBOL(kernel_recvmsg);\n-EXPORT_SYMBOL(kernel_bind);\n-EXPORT_SYMBOL(kernel_listen);\n-EXPORT_SYMBOL(kernel_accept);\n-EXPORT_SYMBOL(kernel_connect);\n-EXPORT_SYMBOL(kernel_getsockname);\n-EXPORT_SYMBOL(kernel_getpeername);\n-EXPORT_SYMBOL(kernel_getsockopt);\n-EXPORT_SYMBOL(kernel_setsockopt);\n-EXPORT_SYMBOL(kernel_sendpage);\n-EXPORT_SYMBOL(kernel_sock_ioctl);\n EXPORT_SYMBOL(kernel_sock_shutdown);\n+\n--\n1.7.0.4\n"
    },
    {
      "commit": "849c45423c0c108e08d67644728cc9b0ed225fa1",
      "tree": "ab1589c91e817ad246caaf3b75e14e7711c31ad8",
      "parents": [
        "faa9dcf793beba05f7178b63a59eaa3ca5175b6a"
      ],
      "author": {
        "name": "Emil Tantilov",
        "email": "emil.s.tantilov@intel.com",
        "time": "Thu Jun 03 16:53:41 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 20:02:41 2010 -0700"
      },
      "message": "ixgbe: Use netdev_\u003clevel\u003e, dev_\u003clevel\u003e, pr_\u003clevel\u003e\n\nThis patch is alternative to a previous patch submitted by Joe Perches.\n\nCreate common macros e_\u003clevel\u003e and e_dev_\u003clevel\u003e that use netdev_\u003clevel\u003e and\ndev_\u003clevel\u003e similar to e1000e.\nRedefined pr_fmt for driver messages.\nUse %pM to display MAC address.\nAligned text to better match the new format.\n\nCC: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Emil Tantilov \u003cemil.s.tantilov@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "faa9dcf793beba05f7178b63a59eaa3ca5175b6a",
      "tree": "0addd3f98e77ab34a8686eaf6855896efe2f9c4f",
      "parents": [
        "4736022844fe694c4ee971fa2b6c1cb38dadbc78"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 03 04:09:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 20:01:52 2010 -0700"
      },
      "message": "arp: RCU changes\n\nAvoid two atomic ops in arp_fwd_proxy()\n\nAvoid two atomic ops in arp_process()\n\nValid optims since arp_rcv() is run under rcu_read_lock()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4736022844fe694c4ee971fa2b6c1cb38dadbc78",
      "tree": "0eafa36fe68d886c152548bfc367627a57fe4dd5",
      "parents": [
        "bc10502dba37d3b210efd9f3867212298f13b78e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 03 04:13:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 20:01:51 2010 -0700"
      },
      "message": "ipv4: RCU changes in __mkroute_input()\n\nAvoid two atomic ops on output device refcount\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f4aeb7fd0f7e6ca008bb2147ba36cee13876595",
      "tree": "48f77ea91413ac36fc6ce72bf15249da6586b04e",
      "parents": [
        "a1868dc2878e61778b9d6d8c61d5368e51d68a29",
        "51a0d38de26226f2779912d92f155b93d539da9a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 12:30:58 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 12:30:58 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "a1868dc2878e61778b9d6d8c61d5368e51d68a29",
      "tree": "ef829861e7d437ed2d62d74fb01601c8f8bba69e",
      "parents": [
        "db2c24175d149b55784f7cb2c303622ce962c1ae"
      ],
      "author": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Wed Jun 02 12:44:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:28:28 2010 -0700"
      },
      "message": "ixgbe: return IXGBE_ERR_RAR_INDEX when out of range\n\nBased on original patch from Shirley Ma \u003cxma@us.ibm.com\u003e\nReturn IXGBE_ERR_RAR_INDEX when RAR index is out of range, instead of\nreturning IXGBE_SUCCESS.\n\nCC: Shirley Ma \u003cxma@us.ibm.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nAcked-by: Don Skidmore \u003cdonald.c.skidmore@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db2c24175d149b55784f7cb2c303622ce962c1ae",
      "tree": "37c34d4289975bcea43d50bf6eff405f74310db5",
      "parents": [
        "3df95ce948dc8ceef07b49003ab944aa047f2a79"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Wed Jun 02 04:55:02 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:28:27 2010 -0700"
      },
      "message": "act_pedit: access skb-\u003edata safely\n\naccess skb-\u003edata safely\n\nwe should use skb_header_pointer() and skb_store_bits() to access skb-\u003edata to\nhandle small or non-linear skbs.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\n----\n net/sched/act_pedit.c |   24 ++++++++++++++----------\n 1 file changed, 14 insertions(+), 10 deletions(-)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3df95ce948dc8ceef07b49003ab944aa047f2a79",
      "tree": "9b6d8b911816cd233ec25dfef9b9d3b76549d1f6",
      "parents": [
        "9e2d11b926765681f72db0373d2ecbbac28359b3"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Wed Jun 02 10:39:56 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:28:26 2010 -0700"
      },
      "message": "sfc: Store port number in net_device::dev_id\n\nThis exposes the port number to userland through sysfs.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e2d11b926765681f72db0373d2ecbbac28359b3",
      "tree": "73f22ef1fe41bb827d2cc77fae033aa7c20781a8",
      "parents": [
        "d23380701876dd93d310b2548c51d0f78f25d7aa"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Wed Jun 02 10:36:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:28:24 2010 -0700"
      },
      "message": "epic100: Test __BIG_ENDIAN instead of (non-existent) CONFIG_BIG_ENDIAN\n\nProbably no one has used this driver on big-endian systems, since it was\nsetting up descriptor swapping if CONFIG_BIG_ENDIAN is set, which it\nnever is, since that symbol is not mentioned anywhere else in the kernel\nsource.  Switch this test to a check for __BIG_ENDIAN so it has a chance\nat working.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d23380701876dd93d310b2548c51d0f78f25d7aa",
      "tree": "37678ef819eb3bccb1c96498448e3a09a4aea35b",
      "parents": [
        "60a5711db646b87b9530b16cbaf3bd53ac5594a5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Jun 03 00:05:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:28:23 2010 -0700"
      },
      "message": "tehuti: return -EFAULT on copy_to_user errors\n\ncopy_to_user() returns the number of bytes remaining but we want to\nreturn a negative error code here.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "60a5711db646b87b9530b16cbaf3bd53ac5594a5",
      "tree": "bbd3c14db8ad6210d897144d668f7b15a3f4fac2",
      "parents": [
        "3b21b508ecc9e043839a5337563cfc77f9fcedb9"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Jun 02 23:56:13 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:28:22 2010 -0700"
      },
      "message": "isdn/kcapi: return -EFAULT on copy_from_user errors\n\ncopy_from_user() returns the number of bytes remaining but we should\nreturn -EFAULT here.  The error code gets returned to the user.  Both\nold_capi_manufacturer() and capi20_manufacturer() had other places\nthat already returned -EFAULT so this won\u0027t break anything.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b21b508ecc9e043839a5337563cfc77f9fcedb9",
      "tree": "b19681832652d327a4a820a961db6036b3015c61",
      "parents": [
        "d42a8f464ba14467e5d45dc0eb8f789c82bd0679"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Jun 02 13:43:15 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:28:21 2010 -0700"
      },
      "message": "e1000e: change logical negate to bitwise\n\nThe bitwise negate is intended here.  With the logical negate the\ncondition is always false.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Bruce Allan \u003cbruce.w.allan@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d42a8f464ba14467e5d45dc0eb8f789c82bd0679",
      "tree": "5c5b597786a8fa05f38cccb856171f0f8abee031",
      "parents": [
        "fbc2e7d9cf49e0bf89b9e91fd60a06851a855c5d"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Jun 01 11:32:43 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:27:56 2010 -0700"
      },
      "message": "sfc: Get port number from CS_PORT_NUM, not PCI function number\n\nA single shared memory region used to communicate with firmware is\nmapped into both PCI PFs of the SFC9020 and SFL9021.  Drivers must be\nable to identify which port they are addressing in order to use the\ncorrect sub-region.  Currently we use the PCI function number, but the\nPCI address may be virtualised.  Use the CS_PORT_NUM register field\ndefined for just this purpose.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc10502dba37d3b210efd9f3867212298f13b78e",
      "tree": "af4542eaab79cd509244578f839167f16f3ab02d",
      "parents": [
        "ba2d3587912f82d1ab4367975b1df460db60fb1e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 03 03:21:52 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:21:52 2010 -0700"
      },
      "message": "net: use __packed annotation\n\ncleanup patch.\n\nUse new __packed annotation in net/ and include/\n(except netfilter)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ba2d3587912f82d1ab4367975b1df460db60fb1e",
      "tree": "1e4e04caf23274bb4e39edbfc5713b4856326953",
      "parents": [
        "1273d97674a1782ff55b823aa6c40aea9b538aaf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 02 18:10:09 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:23 2010 -0700"
      },
      "message": "drivers/net: use __packed annotation\n\ncleanup patch.\n\nUse new __packed annotation in drivers/net/\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1273d97674a1782ff55b823aa6c40aea9b538aaf",
      "tree": "c4030975260322e0a6e1b3ac102aeeefd201c233",
      "parents": [
        "c7621cb3d9a2c42d2fed7e16845611c8c6fd5835"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "dkirjanov@hera.kernel.org",
        "time": "Wed Jun 02 09:17:00 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:21 2010 -0700"
      },
      "message": "fec: Cleanup PHY probing\n\nCleanup PHY probing: use helpers from phylib\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c7621cb3d9a2c42d2fed7e16845611c8c6fd5835",
      "tree": "da225ca9fd06d08aaf1c045ecc53bd0514da57a0",
      "parents": [
        "7e364e9668ceb5094622144ef4c931305329c175"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "dkirjanov@hera.kernel.org",
        "time": "Wed Jun 02 09:15:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:21 2010 -0700"
      },
      "message": "fec: convert TX hook to netdev_tx_t\n\nConvert TX hook return value to netdev_tx_t\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e364e9668ceb5094622144ef4c931305329c175",
      "tree": "a52fb0abcebad16edfd3def239067b7f64dd12d8",
      "parents": [
        "482c42f12667223ac93bd954ad7f87c6fef29393"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Wed Jun 02 07:36:20 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:20 2010 -0700"
      },
      "message": "net: mac8390 - Sort out memory/MMIO accesses and casts\n\ncommit 5c7fffd0e3b57cb63f50bbd710868f012d67654f (\"drivers/net/mac8390.c: Remove\nuseless memcpy casting\") removed too many casts, introducing the following\nwarnings:\n\n| drivers/net/mac8390.c:248: warning: passing argument 1 of \u0027__builtin_memcpy\u0027 makes pointer from integer without a cast\n| drivers/net/mac8390.c:253: warning: passing argument 1 of \u0027word_memcpy_tocard\u0027 makes pointer from integer without a cast\n| drivers/net/mac8390.c:255: warning: passing argument 2 of \u0027word_memcpy_fromcard\u0027 makes pointer from integer without a cast\n\nInstead of just readding the casts,\n  - move all casts inside word_memcpy_{to,from}card(),\n  - replace an incorrect memcpy() by memcpy_toio(),\n  - add memcmp_withio() as a wrapper around memcmp(),\n  - replace an incorrect memcpy_toio() by memcpy_fromio().\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nTested-by: Finn Thain \u003cfthain@telegraphics.com.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "482c42f12667223ac93bd954ad7f87c6fef29393",
      "tree": "c3080c6671f5656a5546bed614ef69d336e3920a",
      "parents": [
        "96d362202bfc0e5da78ee59b1645296fbca515f4"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Wed Jun 02 08:04:28 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:20 2010 -0700"
      },
      "message": "chelsio: Remove remnants of CONFIG_CHELSIO_T1_COUGAR\n\nCONFIG_CHELSIO_T1_COUGAR cannot be set (it appears nowhere in any\nKconfig files), and the code it protects could never build (cspi.h was\nnever added to the kernel tree).  Therefore it\u0027s pretty safe to remove\nall vestiges of this dead code.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "96d362202bfc0e5da78ee59b1645296fbca515f4",
      "tree": "ce3cc34d9a75f8c5d91ea9eb711993657d32af77",
      "parents": [
        "b5f7e7554753e2cc3ef3bef0271fdb32027df2ba"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 02 19:21:31 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:19 2010 -0700"
      },
      "message": "ipv4: RCU conversion of ip_route_input_slow/ip_route_input_mc\n\nAvoid two atomic ops on struct in_device refcount per incoming packet,\nif slow path taken, (or route cache disabled)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5f7e7554753e2cc3ef3bef0271fdb32027df2ba",
      "tree": "e7908b1ccf1cfef6bdeb7cac4c83f6d2ad2be54e",
      "parents": [
        "8cbccbe76168a0c627d2274e4a322116804db30f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 02 12:05:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:19 2010 -0700"
      },
      "message": "ipv4: add LINUX_MIB_IPRPFILTER snmp counter\n\nChristoph Lameter mentioned that packets could be dropped in input path\nbecause of rp_filter settings, without any SNMP counter being\nincremented. System administrator can have a hard time to track the\nproblem.\n\nThis patch introduces a new counter, LINUX_MIB_IPRPFILTER, incremented\neach time we drop a packet because Reverse Path Filter triggers.\n\n(We receive an IPv4 datagram on a given interface, and find the route to\nsend an answer would use another interface)\n\nnetstat -s | grep IPReversePathFilter\n    IPReversePathFilter: 21714\n\nReported-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8cbccbe76168a0c627d2274e4a322116804db30f",
      "tree": "7ad89d1260643ef23bcee47dc3fd9fc576edac55",
      "parents": [
        "0dea7c12fc2c15de8b2104a322a1f47919d753fd"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Jun 02 16:02:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:18 2010 -0700"
      },
      "message": "ipconfig: document DHCP hostname and DNS record\n\nNow it\u0027s possible to update the DNS record for $HOST_NAME with\n\n\tip\u003d::::$HOST_NAME::dhcp\n\nCC: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0dea7c12fc2c15de8b2104a322a1f47919d753fd",
      "tree": "f6f2082164d3a1fcfe3359d02beb6f19917d4c08",
      "parents": [
        "ab95bfe01f9872459c8678572ccadbf646badad0",
        "f8322fbe049687d3676690e8ad839c7169dd306a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 08:26:36 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 08:26:36 2010 -0700"
      },
      "message": "Merge branch \u0027vhost-net-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost\n"
    },
    {
      "commit": "fbc2e7d9cf49e0bf89b9e91fd60a06851a855c5d",
      "tree": "a82f11f0ea06fd465393314d0f37772f715c6caf",
      "parents": [
        "edafe502404f3669d364b6e96d79b54067b634b4"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Wed Jun 02 07:32:42 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 07:32:42 2010 -0700"
      },
      "message": "cls_u32: use skb_header_pointer() to dereference data safely\n\nuse skb_header_pointer() to dereference data safely\n\nthe original skb-\u003edata dereference isn\u0027t safe, as there isn\u0027t any skb-\u003elen or\nskb_is_nonlinear() check. skb_header_pointer() is used instead in this patch.\nAnd when the skb isn\u0027t long enough, we terminate the function u32_classify()\nimmediately with -1.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "edafe502404f3669d364b6e96d79b54067b634b4",
      "tree": "ef3c1a3921e20b2dc40938f2de23e893a6a53c4a",
      "parents": [
        "33c29dde7d04dc0ec0edb649d20ccf1351c13a06"
      ],
      "author": {
        "name": "Daniele Lacamera",
        "email": "root@danielinux.net",
        "time": "Wed Jun 02 02:02:04 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 07:15:48 2010 -0700"
      },
      "message": "TCP: tcp_hybla: Fix integer overflow in slow start increment\n\nFor large values of rtt, 2^rho operation may overflow u32. Clamp down the increment to 2^16.\n\nSigned-off-by: Daniele Lacamera \u003croot@danielinux.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab95bfe01f9872459c8678572ccadbf646badad0",
      "tree": "8e11f94077c9a80f7af52ce3dd50591a686561d7",
      "parents": [
        "20c59de2e6b6bc74bbf714dcd4e720afe8d516cf"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Jun 01 21:52:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 07:11:15 2010 -0700"
      },
      "message": "net: replace hooks in __netif_receive_skb V5\n\nWhat this patch does is it removes two receive frame hooks (for bridge and for\nmacvlan) from __netif_receive_skb. These are replaced them with a single\nhook for both. It only supports one hook per device because it makes no\nsense to do bridging and macvlan on the same device.\n\nThen a network driver (of virtual netdev like macvlan or bridge) can register\nan rx_handler for needed net device.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "20c59de2e6b6bc74bbf714dcd4e720afe8d516cf",
      "tree": "45e5c62e286368f8259b844cb7cf796d19066fb0",
      "parents": [
        "d92222e27fdc98d73df25f3d49fb1ff3a3369bec"
      ],
      "author": {
        "name": "Arnaud Ebalard",
        "email": "arno@natisbad.org",
        "time": "Tue Jun 01 21:35:01 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 07:08:31 2010 -0700"
      },
      "message": "ipv6: Refactor update of IPv6 flowi destination address for srcrt (RH) option\n\nThere are more than a dozen occurrences of following code in the\nIPv6 stack:\n\n    if (opt \u0026\u0026 opt-\u003esrcrt) {\n            struct rt0_hdr *rt0 \u003d (struct rt0_hdr *) opt-\u003esrcrt;\n            ipv6_addr_copy(\u0026final, \u0026fl.fl6_dst);\n            ipv6_addr_copy(\u0026fl.fl6_dst, rt0-\u003eaddr);\n            final_p \u003d \u0026final;\n    }\n\nReplace those with a helper. Note that the helper overrides final_p\nin all cases. This is ok as final_p was previously initialized to\nNULL when declared.\n\nSigned-off-by: Arnaud Ebalard \u003carno@natisbad.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d92222e27fdc98d73df25f3d49fb1ff3a3369bec",
      "tree": "3a7d505880cf41e4360435c29290b2c5a36da0ff",
      "parents": [
        "130c0f47fdf9c533deb1136cad5136f6cb7020f0"
      ],
      "author": {
        "name": "Finn Thain",
        "email": "fthain@telegraphics.com.au",
        "time": "Wed Jun 02 07:06:34 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 07:06:34 2010 -0700"
      },
      "message": "mac8390: raise error logging priority\n\nLog error conditions using KERN_ERR priority.\n\nSigned-off-by: Finn Thain \u003cfthain@telegraphics.com.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "130c0f47fdf9c533deb1136cad5136f6cb7020f0",
      "tree": "38ab94d926bf68fc2dd5cb8941777574bcb26a11",
      "parents": [
        "614f60fa9d73a9e8fdff3df83381907fea7c5649"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 30 17:19:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 07:05:03 2010 -0700"
      },
      "message": "ipconfig: send host-name in DHCP requests\n\nNormally dhclient can be configured to send the \"host-name\" option\nin DHCP requests to update the client\u0027s DNS record. However for an\nNFSROOT system, dhclient shall never be called (which may change the\nIP addr and therefore lose your root NFS mount connection).\n\nSo enable updating the DNS record with kernel parameter\n\n\tip\u003d::::$HOST_NAME::dhcp\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33c29dde7d04dc0ec0edb649d20ccf1351c13a06",
      "tree": "29c06e00942fc07554ebb918d7702d22eb8c7ff3",
      "parents": [
        "e3fe8558c7fc182972c3d947d88744482111f304"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Sat May 29 14:26:59 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 06:51:34 2010 -0700"
      },
      "message": "act_nat: fix the wrong checksum when addr isn\u0027t in old_addr/mask\n\nfix the wrong checksum when addr isn\u0027t in old_addr/mask\n\nFor TCP and UDP packets, when addr isn\u0027t in old_addr/mask we don\u0027t do SNAT or\nDNAT, and we should not update layer 4 checksum.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\n----\n net/sched/act_nat.c |    4 ++++\n 1 file changed, 4 insertions(+)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e3fe8558c7fc182972c3d947d88744482111f304",
      "tree": "ce78761ef007487fc65d0f0991b2a3925a6b759d",
      "parents": [
        "b1011b375be106e0a312baafc981a26165283efe"
      ],
      "author": {
        "name": "Eric Bénard",
        "email": "eric@eukrea.com",
        "time": "Wed Jun 02 06:13:34 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 06:13:34 2010 -0700"
      },
      "message": "net/fec: fix pm to survive to suspend/resume\n\n* in the actual driver, calling fec_stop and fec_enet_init doesn\u0027t\nallow to have a working network interface at resume (where a\nifconfig down and up is required to recover the interface)\n* by using fec_enet_close and fec_enet_open, this patch solves this\nproblem and handle the case where the link changed between suspend\nand resume\n* this patch also disable clock at suspend and reenable it at resume\n\nSigned-off-by: Eric Bénard \u003ceric@eukrea.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1011b375be106e0a312baafc981a26165283efe",
      "tree": "5ff975809baf98abc42920b255a2b9b30912b9df",
      "parents": [
        "53ee490ac5836d506ea5830f821045aafa3c196f"
      ],
      "author": {
        "name": "Phil Sutter",
        "email": "phil@nwl.cc",
        "time": "Sat May 29 13:23:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 06:12:19 2010 -0700"
      },
      "message": "korina: count RX DMA OVR as rx_fifo_error\n\nThis way, RX DMA overruns (actually being caused by overrun of the\n512byte input FIFO) show up in ifconfig output. The rx_fifo_errors\ncounter is unused otherwise.\n\nSigned-off-by: Phil Sutter \u003cphil@nwl.cc\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53ee490ac5836d506ea5830f821045aafa3c196f",
      "tree": "030e5f7dc4ac91216145e2bc7d388e497fbed99d",
      "parents": [
        "ceb3d2394532540a52ce34f71e67c8d008913f79"
      ],
      "author": {
        "name": "Phil Sutter",
        "email": "phil@nwl.cc",
        "time": "Sat May 29 13:23:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 06:12:18 2010 -0700"
      },
      "message": "korina: use netdev_alloc_skb_ip_align() here, too\n\nThis patch completes commit 89d71a66c40d629e3b1285def543ab1425558cd5\nwhich missed this spot, as it seems.\n\nSigned-off-by: Phil Sutter \u003cphil@nwl.cc\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ceb3d2394532540a52ce34f71e67c8d008913f79",
      "tree": "8bd8cb8d9af745ed0aa2e55a1b0e8ef51b74020a",
      "parents": [
        "2df4a0fa1540c460ec69788ab2a901cc72a75644"
      ],
      "author": {
        "name": "Phil Sutter",
        "email": "phil@nwl.cc",
        "time": "Sat May 29 13:23:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 06:12:18 2010 -0700"
      },
      "message": "korina: fix deadlock on RX FIFO overrun\n\nBy calling korina_restart(), the IRQ handler tries to disable the\ninterrupt it\u0027s currently serving. This leads to a deadlock since\ndisable_irq() waits for any running IRQ handlers to finish before\nreturning. This patch addresses the issue by turning korina_restart()\ninto a workqueue task, which is then scheduled when needed.\n\nReproducing the deadlock is easily done using e.g. GNU netcat to send\nlarge amounts of UDP data to the host running this driver.\n\nNote that the same problem (and fix) applies to TX FIFO underruns, but\napparently these are less easy to trigger.\n\nSigned-off-by: Phil Sutter \u003cphil@nwl.cc\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "614f60fa9d73a9e8fdff3df83381907fea7c5649",
      "tree": "a1b7704393b7042242470db09d59944bca67ec51",
      "parents": [
        "7dad171c39dc83bd267c4f98d8b02d38e0d65596"
      ],
      "author": {
        "name": "Scott McMillan",
        "email": "scott.a.mcmillan@intel.com",
        "time": "Wed Jun 02 05:53:56 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:53:56 2010 -0700"
      },
      "message": "packet_mmap: expose hw packet timestamps to network packet capture utilities\n\nThis patch adds a setting, PACKET_TIMESTAMP, to specify the packet\ntimestamp source that is exported to capture utilities like tcpdump by\npacket_mmap.\n\nPACKET_TIMESTAMP accepts the same integer bit field as\nSO_TIMESTAMPING.  However, only the SOF_TIMESTAMPING_SYS_HARDWARE and\nSOF_TIMESTAMPING_RAW_HARDWARE values are currently recognized by\nPACKET_TIMESTAMP.  SOF_TIMESTAMPING_SYS_HARDWARE takes precedence over\nSOF_TIMESTAMPING_RAW_HARDWARE if both bits are set.\n\nIf PACKET_TIMESTAMP is not set, a software timestamp generated inside\nthe networking stack is used (the behavior before this setting was\nadded).\n\nSigned-off-by: Scott McMillan \u003cscott.a.mcmillan@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7dad171c39dc83bd267c4f98d8b02d38e0d65596",
      "tree": "fa2d2808359069aaef576852cee7443323d78134",
      "parents": [
        "c2d9ba9bce8d7323ca96f239e1f505c14d6244fb"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Wed Jun 02 05:51:19 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:51:19 2010 -0700"
      },
      "message": "vxge: Fix checkstack warning in vxge_probe()\n\nLinux 2.6.33 reports this checkstack warning:\n\ndrivers/net/vxge/vxge-main.c: In function \u0027vxge_probe\u0027:\ndrivers/net/vxge/vxge-main.c:4409: warning: the frame size of 1028 bytes is larger than 1024 bytes\n\nThis warning does not occur in the latest linux-2.6 or linux-next, however,\nwhen I do a \u0027make -j32 CONFIG_FRAME_WARN\u003d512\u0027 instead of 1024 I see\n\ndrivers/net/vxge/vxge-main.c: In function ‘vxge_probe’:\ndrivers/net/vxge/vxge-main.c:4423: warning: the frame size of 1024 bytes is larger than 512 bytes\n\nThis patch moves the large vxge_config struct off the stack.\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c2d9ba9bce8d7323ca96f239e1f505c14d6244fb",
      "tree": "7a184eefa2e48e6aa15cdf3aefb6ccf2fb834320",
      "parents": [
        "c6b20d941b08941bece53bc3d857beb1fb25fffc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 01 06:51:19 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:16:23 2010 -0700"
      },
      "message": "net: CONFIG_NET_NS reduction\n\nUse read_pnet() and write_pnet() to reduce number of ifdef CONFIG_NET_NS\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6b20d941b08941bece53bc3d857beb1fb25fffc",
      "tree": "38c52bebd82f27c5e36ec9ef5c1f402400c6339b",
      "parents": [
        "38454db3f0b694df929073a5a867edf30551d950"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Jun 01 06:05:46 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:16:23 2010 -0700"
      },
      "message": "ppp: eliminate shadowed variable name\n\nSparse complains about shadowed declaration of skb. So use other\nname.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "38454db3f0b694df929073a5a867edf30551d950",
      "tree": "0725a76b8f03337b63caf3da8aaee526cba990ef",
      "parents": [
        "c1f8fc57c046903b5e7c891f2922592d5f775af3"
      ],
      "author": {
        "name": "Finn Thain",
        "email": "fthain@telegraphics.com.au",
        "time": "Tue Jun 01 02:18:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:16:22 2010 -0700"
      },
      "message": "mac8390: propagate error code from request_irq\n\nUse the request_irq() error code as the return value for mac8390_open().\nEAGAIN doesn\u0027t make sense for Nubus slot IRQs. Only this driver can claim\nthis IRQ (until the NIC is removed, which means everything is powered\ndown).\n\nSigned-off-by: Finn Thain \u003cfthain@telegraphics.com.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1f8fc57c046903b5e7c891f2922592d5f775af3",
      "tree": "fed7e2ce4c750b324ab5d18cab76bae6a9c1470a",
      "parents": [
        "7c25492871a50f9f72f4d1350bdea53169024864"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon May 31 21:09:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:16:22 2010 -0700"
      },
      "message": "caif: add newlines after declarations in caif_serial.c\n\nI added newlines after the declarations in caif_serial.c.  This is\nnormal kernel style, although I can\u0027t see anywhere it\u0027s documented.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c25492871a50f9f72f4d1350bdea53169024864",
      "tree": "fb068a702d31e1bd80f2d2d0eca74f232ead6ee7",
      "parents": [
        "79640a4ca6955e3ebdb7038508fa7a0cd7fa5527"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon May 31 21:08:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:16:21 2010 -0700"
      },
      "message": "caif: remove unneeded variable from caif_net_open()\n\nWe don\u0027t use the \"ser\" variable so I\u0027ve removed it.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Sjur Braendeland \u003csjur.brandeland@stericsson.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "79640a4ca6955e3ebdb7038508fa7a0cd7fa5527",
      "tree": "128a3d1e9d173963070d49cc64ad38d8eb67dd7b",
      "parents": [
        "097811bb48c7837db94d7fe5d94f0f4b5e19e78c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 02 05:09:29 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:09:29 2010 -0700"
      },
      "message": "net: add additional lock to qdisc to increase throughput\n\nWhen many cpus compete for sending frames on a given qdisc, the qdisc\nspinlock suffers from very high contention.\n\nThe cpu owning __QDISC_STATE_RUNNING bit has same priority to acquire\nthe lock, and cannot dequeue packets fast enough, since it must wait for\nthis lock for each dequeued packet.\n\nOne solution to this problem is to force all cpus spinning on a second\nlock before trying to get the main lock, when/if they see\n__QDISC_STATE_RUNNING already set.\n\nThe owning cpu then compete with at most one other cpu for the main\nlock, allowing for higher dequeueing rate.\n\nBased on a previous patch from Alexander Duyck. I added the heuristic to\navoid the atomic in fast path, and put the new lock far away from the\ncache line used by the dequeue worker. Also try to release the busylock\nlock as late as possible.\n\nTests with following script gave a boost from ~50.000 pps to ~600.000\npps on a dual quad core machine (E5450 @3.00GHz), tg3 driver.\n(A single netperf flow can reach ~800.000 pps on this platform)\n\nfor j in `seq 0 3`; do\n  for i in `seq 0 7`; do\n    netperf -H 192.168.0.1 -t UDP_STREAM -l 60 -N -T $i -- -m 6 \u0026\n  done\ndone\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "097811bb48c7837db94d7fe5d94f0f4b5e19e78c",
      "tree": "61701eb46c49d0a2db449be87ae1d114e03ac9f7",
      "parents": [
        "5206e24c2c348d739c31ebed10a741a02bbde9e0"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Wed May 19 03:26:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 04:16:24 2010 -0700"
      },
      "message": "bonding: optimize tlb_get_least_loaded_slave\n\nIn the worst case, when the first loop breaks an the end of the slave list,\nthe slave list is iterated through twice. This patch reduces this\nfunction only to one loop. Also makes it simpler.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5206e24c2c348d739c31ebed10a741a02bbde9e0",
      "tree": "28993a140fb5cdbd6c9b47e091207a8af866d888",
      "parents": [
        "c20811a79e671a6a1fe86a8c1afe04aca8a7f085"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Wed May 19 01:17:41 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 04:16:24 2010 -0700"
      },
      "message": "bonding: remove unused original_flags struct slave member\n\nThis is stored but never restored. So remove this as it is useless.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c20811a79e671a6a1fe86a8c1afe04aca8a7f085",
      "tree": "21c68c6a711de84781dff4a561566dc0e325959b",
      "parents": [
        "e95095540c5276fc9922cb14376afc36f846af1f"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Wed May 19 01:14:29 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 04:16:23 2010 -0700"
      },
      "message": "bonding: move dev_addr cpy to bond_enslave\n\nMove the code that copies slave\u0027s mac address in case that\u0027s the first slave into\nbond_enslave. Ifenslave app does this also but that\u0027s not a problem. This is\nsomething that should be done in bond_enslave, and it shound not matter from\nwhere is it called.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e95095540c5276fc9922cb14376afc36f846af1f",
      "tree": "b82715e012b90e32eddd50d97cd9771525810d4d",
      "parents": [
        "f9f3545e1e5de3d3f5376ae6c522aedb1205f4e1"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Wed Jun 02 03:45:22 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:45:22 2010 -0700"
      },
      "message": "net/mpc52xx_phy: Various code cleanups\n\n- don\u0027t free bus-\u003eirq (obsoleted by ca816d98170942371535b3e862813b0aba9b7d90)\n- don\u0027t dispose irqs (should be done in of_mdiobus_register())\n- use fec-pointer consistently in transfer()\n- use resource_size()\n- cosmetic fixes\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f9f3545e1e5de3d3f5376ae6c522aedb1205f4e1",
      "tree": "190d929aa39cce0f969da6528d16c8aefb25cc0d",
      "parents": [
        "3dd90905e08655aa7754f08ebe8b1f44e2793074"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue May 18 05:46:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:39:42 2010 -0700"
      },
      "message": "bonding: make bonding_store_slaves simpler\n\nThis patch makes bonding_store_slaves function nicer and easier to understand.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3dd90905e08655aa7754f08ebe8b1f44e2793074",
      "tree": "48261f1ff95d6483d13caa922afe0256f19961ee",
      "parents": [
        "b15ba0fbdc2e54c3885fed91c54aeef7fe474033"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue May 18 05:44:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:39:42 2010 -0700"
      },
      "message": "bonding: remove redundant checks from bonding_store_slaves V2\n\n(it\u0027s actually the same as v1)\n\nRemove checks that duplicates similar checks in bond_enslave.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b15ba0fbdc2e54c3885fed91c54aeef7fe474033",
      "tree": "bc51f9675212866b4f7ae68fd54fa28b3e85e6d0",
      "parents": [
        "64585909996de7deaf8aa5cf7629d775b16ee417"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue May 18 05:42:40 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:39:41 2010 -0700"
      },
      "message": "bonding: move slave MTU handling from sysfs V2\n\nV1-\u003eV2: corrected res/ret use\n\nFor some reason, MTU handling (storing, and restoring) is taking  place in\nbond_sysfs. The correct place for this code is in bond_enslave, bond_release.\nSo move it there.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "64585909996de7deaf8aa5cf7629d775b16ee417",
      "tree": "9b1f05644532feb1bbcc3b448087cc389a619933",
      "parents": [
        "371121057607e3127e19b3fa094330181b5b031e"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Mon May 17 03:49:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:39:40 2010 -0700"
      },
      "message": "bonding: remove unused variable \"found\"\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2df4a0fa1540c460ec69788ab2a901cc72a75644",
      "tree": "cf9fb32c112a2b27eaeccd8a825c15505b32e2d9",
      "parents": [
        "194dbcc8a1a97cbac9a619a563e5f6b7f7d5a485"
      ],
      "author": {
        "name": "John Fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Wed May 12 21:31:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:35:18 2010 -0700"
      },
      "message": "net: fix conflict between null_or_orig and null_or_bond\n\nIf a skb is received on an inactive bond that does not meet\nthe special cases checked for by skb_bond_should_drop it should\nonly be delivered to exact matches as the comment in\nnetif_receive_skb() says.\n\nHowever because null_or_bond could also be null this is not\nalways true.  This patch renames null_or_bond to orig_or_bond\nand initializes it to orig_dev.  This keeps the intent of\nnull_or_bond to pass frames received on VLAN interfaces stacked\non bonding interfaces without invalidating the statement for\nnull_or_orig.\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "194dbcc8a1a97cbac9a619a563e5f6b7f7d5a485",
      "tree": "fbfae006dc8400c82ce387f1f4e39b8488c00e31",
      "parents": [
        "08f382ebb8a9efb898840aa74cf55148c7a98af6"
      ],
      "author": {
        "name": "John Fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Wed May 12 21:31:06 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:35:18 2010 -0700"
      },
      "message": "net: init_vlan should not copy slave or master flags\n\nThe vlan device should not copy the slave or master flags from\nthe real device. It is not in the bond until added nor is it\na master.\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "371121057607e3127e19b3fa094330181b5b031e",
      "tree": "d0803bdf06a50fdad88435588f66b2f0f4c95008",
      "parents": [
        "bc135b23d01acf7ee926aaf75b0020c86d3869f9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 02 03:24:13 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:24:13 2010 -0700"
      },
      "message": "net: QDISC_STATE_RUNNING dont need atomic bit ops\n\n__QDISC_STATE_RUNNING is always changed while qdisc lock is held.\n\nWe can avoid two atomic operations in xmit path, if we move this bit in\na new __state container.\n\nLocation of this __state container is carefully chosen so that fast path\nonly dirties one qdisc cache line.\n\nTHROTTLED bit could later be moved into this __state location too, to\navoid dirtying first qdisc cache line.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc135b23d01acf7ee926aaf75b0020c86d3869f9",
      "tree": "29b338a0c54c00880720d808f2fede7c605f516d",
      "parents": [
        "9f26f547a587ce9015ffe495d2af604580b4b784"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 02 03:23:51 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 03:23:51 2010 -0700"
      },
      "message": "net: Define accessors to manipulate QDISC_STATE_RUNNING\n\nDefine three helpers to manipulate QDISC_STATE_RUNNIG flag, that a\nsecond patch will move on another location.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "08f382ebb8a9efb898840aa74cf55148c7a98af6",
      "tree": "2486b90342f17a8f5a1bf8feb1a219143b83da48",
      "parents": [
        "f048fa9c8686119c3858a463cab6121dced7c0bf"
      ],
      "author": {
        "name": "Scott Feldman",
        "email": "scofeldm@cisco.com",
        "time": "Tue Jun 01 08:59:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:26:40 2010 -0700"
      },
      "message": "enic: bug fix: make the set/get netlink VF_PORT support symmetrical\n\nTo make get/set netlink VF_PORT truly symmetrical, we need to keep track\nof what items are set and only return those items on get.  Previously, the\ndriver wasn\u0027t differentiating between a set of attr with a NULL string,\nfor example, and not setting the attr at all.  We only want to return\nthe NULL string if the attr was actually set with a NULL string.  Otherwise,\ndon\u0027t return the attr.\n\nSigned-off-by: Scott Feldman \u003cscofeldm@cisco.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f048fa9c8686119c3858a463cab6121dced7c0bf",
      "tree": "c68dd0cc095559c348c8916b6e3372b4e0610e9a",
      "parents": [
        "fafeeb6c80e3842c6dc19d05de09a23f23eef0d8"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@broadcom.com",
        "time": "Tue Jun 01 15:05:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:26:40 2010 -0700"
      },
      "message": "bnx2: Fix hang during rmmod bnx2.\n\nThe regression is caused by:\n\ncommit 4327ba435a56ada13eedf3eb332e583c7a0586a9\n    bnx2: Fix netpoll crash.\n\nIf -\u003eopen() and -\u003eclose() are called multiple times, the same napi structs\nwill be added to dev-\u003enapi_list multiple times, corrupting the dev-\u003enapi_list.\nThis causes free_netdev() to hang during rmmod.\n\nWe fix this by calling netif_napi_del() during -\u003eclose().\n\nAlso, bnx2_init_napi() must not be in the __devinit section since it is\ncalled by -\u003eopen().\n\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: Benjamin Li \u003cbenli@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fafeeb6c80e3842c6dc19d05de09a23f23eef0d8",
      "tree": "47a177d76fa0833a324737e103d5128ad77b231b",
      "parents": [
        "b42d9165e1e3d92e4e3318642463dbe592a12568"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 01 10:04:49 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:26:39 2010 -0700"
      },
      "message": "xfrm: force a dst reference in __xfrm_route_forward()\n\nPackets going through __xfrm_route_forward() have a not refcounted dst\nentry, since we enabled a noref forwarding path.\n\nxfrm_lookup() might incorrectly release this dst entry.\n\nIt\u0027s a bit late to make invasive changes in xfrm_lookup(), so lets force\na refcount in this path.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9f26f547a587ce9015ffe495d2af604580b4b784",
      "tree": "ddf274a263389e6cebb28f5e881d9bc69ec6f49e",
      "parents": [
        "2e9d722db6617ed10204bfa9cd60552620592a43"
      ],
      "author": {
        "name": "Anirban Chakraborty",
        "email": "anirban.chakraborty@qlogic.com",
        "time": "Tue Jun 01 11:33:09 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:24:03 2010 -0700"
      },
      "message": "qlcnic: NIC Partitioning - Add non privileged mode support\n\nAdded support for NIC functions that work in non privileged mode where these\nfunctions are privileged to do IO only, the control operations are handled via\nprivileged functions.\nBumped up version number to 5.0.3.\n\nSigned-off-by: Anirban Chakraborty \u003canirban.chakraborty@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2e9d722db6617ed10204bfa9cd60552620592a43",
      "tree": "da905f18459e55a8cb534d757f5b14a3e9da73d5",
      "parents": [
        "dd8f61d7ff92eb8a4626565ca37b209b3a8a9ce2"
      ],
      "author": {
        "name": "Anirban Chakraborty",
        "email": "anirban.chakraborty@qlogic.com",
        "time": "Tue Jun 01 11:28:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:24:03 2010 -0700"
      },
      "message": "qlcnic: NIC Partitioning - Add basic infrastructure support\n\nFollowing changes have been added to enable the adapter to work in\nNIC partitioning mode where multiple PCI functions of an adapter port can\nbe configured to work as NIC functions. The first function that is enumerated on\nthe PCI bus assumes the role of management function which, besides being able\nto do all the NIC functionality, can configure other NIC partitions. Other NIC\nfunctions can be configured as privileged or non privileged functions.\nPrivileged function can not configure other NIC functions but can do all the\nNIC functionality including any firmware initialization, chip reset etc. Non\nprivileged functions can do only basic IO. For chip reset etc, it depends on the\nprivilege or management function.\n\n1. Added code to determine PCI function number independent of kernel API.\n2. Added Driver - FW version 2.0 support.\n3. Changed producer and consumer register offset calculation.\n4. Added management and privileged operation modes for npar functions. A module\n parameter has been added to control it.\n5. Added support for configuring the eswitch in the adapter.\n\nSigned-off-by: Anirban Chakraborty \u003canirban.chakraborty@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd8f61d7ff92eb8a4626565ca37b209b3a8a9ce2",
      "tree": "14107a8c87152e86eee7e2ac9c3f696f12bb835c",
      "parents": [
        "d188ceeb3dcc6766db34021b36371a14c21ebd74"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Jun 01 11:32:43 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:11 2010 -0700"
      },
      "message": "sfc: Get port number from CS_PORT_NUM, not PCI function number\n\nA single shared memory region used to communicate with firmware is\nmapped into both PCI PFs of the SFC9020 and SFL9021.  Drivers must be\nable to identify which port they are addressing in order to use the\ncorrect sub-region.  Currently we use the PCI function number, but the\nPCI address may be virtualised.  Use the CS_PORT_NUM register field\ndefined for just this purpose.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d188ceeb3dcc6766db34021b36371a14c21ebd74",
      "tree": "8a857594a488b6f80e8a9c0bd028ee47449a46ba",
      "parents": [
        "62b330baede3849897ce7fc5534eadc34cd03a51"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Jun 01 11:21:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:10 2010 -0700"
      },
      "message": "sfc: Only count bad packets in rx_errors\n\nrx_errors is defined as \u0027bad packets received\u0027, but we are currently\nincluding various overflow errors as well.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62b330baede3849897ce7fc5534eadc34cd03a51",
      "tree": "8b1108981cac25a732fed7e488d5a6004e49015e",
      "parents": [
        "244558006cf02f0096fb247f3a54dc7e7d81a256"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "shodgson@solarflare.com",
        "time": "Tue Jun 01 11:20:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:10 2010 -0700"
      },
      "message": "sfc: Allow shared pages to be recycled\n\nInsert a structure at the start of the shared page that\ntracks the dma mapping refcnt. DMA into the next cache\nline of the (shared) page (plus EFX_PAGE_IP_ALIGN).\n\nWhen recycling a page, check the page refcnt. If the\npage is otherwise unused, then resurrect the other\nreceive buffer that previously referenced the page.\nBe careful not to overflow the receive ring, since we\ncan now resurrect n receive buffers in a row.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "244558006cf02f0096fb247f3a54dc7e7d81a256",
      "tree": "d56b996063fa685cdaf49720a9370910913db837",
      "parents": [
        "f7d6f379db61233a1740cb2c6818b9c97531771f"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "shodgson@solarflare.com",
        "time": "Tue Jun 01 11:20:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:09 2010 -0700"
      },
      "message": "sfc: Recycle discarded rx buffers back onto the queue\n\nThe cut-through design of the receive path means that packets that\nfail to match the appropriate MAC filter are not discarded at the MAC\nbut are flagged in the completion event as \u0027to be discarded\u0027.  On\nnetworks with heavy multicast traffic, this can account for a\nsignificant proportion of received packets, so it is worthwhile to\nrecycle the buffer immediately in this case rather than freeing it\nand then reallocating it shortly after.\n\nThe only complication here is dealing with a page shared\nbetween two receive buffers. In that case, we need to be\ncareful to free the dma mapping when both buffers have\nbeen free\u0027d by the kernel. This means that we can only\nrecycle such a page if both receive buffers are discarded.\nUnfortunately, in an environment with 1500mtu,\nrx_alloc_method\u003dPAGE, and a mixture of discarded and\nnot-discarded frames hitting the same receive queue,\nbuffer recycling won\u0027t always be possible.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f7d6f379db61233a1740cb2c6818b9c97531771f",
      "tree": "bf9af05c24d928bf6a66699d084912f68faddf05",
      "parents": [
        "90d683afd1395016775c8d90508614f8d3000b81"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "shodgson@solarflare.com",
        "time": "Tue Jun 01 11:33:17 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:08 2010 -0700"
      },
      "message": "sfc: Support only two rx buffers per page\n\n- Pull the loop handling into efx_init_rx_buffers_(skb|page)\n- Remove rx_queue-\u003ebuf_page, and associated clean up code\n- Remove unmap_addr, since unmap_addr is trivially calculable\n\nThis will allow us to recycle discarded buffers directly\nfrom efx_rx_packet(), since will never be in the middle of\nsplitting a page.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "90d683afd1395016775c8d90508614f8d3000b81",
      "tree": "33c239c5cd1e607a22dca1af0fd3615cee584ef9",
      "parents": [
        "d730dc527a5abd4717f6320e82cfce54edc882a3"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "shodgson@solarflare.com",
        "time": "Tue Jun 01 11:19:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:08 2010 -0700"
      },
      "message": "sfc: Remove efx_rx_queue::add_lock\n\nEnsure that efx_fast_push_rx_descriptors() must only run\nfrom efx_process_channel() [NAPI], or when napi_disable()\nhas been executed.\n\nReimplement the slow fill by sending an event to the\nchannel, so that NAPI runs, and hanging the subsequent\nfast fill off the event handler. Replace the sfc_refill\nworkqueue and delayed work items with a timer. We do\nnot need to stop this timer in efx_flush_all() because\nit\u0027s safe to send the event always; receiving it will\nbe delayed until NAPI is restarted.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d730dc527a5abd4717f6320e82cfce54edc882a3",
      "tree": "ff9ec087fc5f9a30d992a114b29b42b8cc3f1bf0",
      "parents": [
        "901d3fe848d8c34988699592c9f4b98c2ce10a8b"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "shodgson@solarflare.com",
        "time": "Tue Jun 01 11:19:09 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:07 2010 -0700"
      },
      "message": "sfc: Allow DRV_GEN events to be used outside of selftests\n\nFormerly, efx_test_eventq_irq() assumed it was the only user of\ndriver generated events. Allow it to interoperate with other users.\n\nWe can create more than 16 channels, so align event codes with\na multiple of 256 not 16.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "901d3fe848d8c34988699592c9f4b98c2ce10a8b",
      "tree": "4b5e6a1930da8155d131b2ad9c774f929d2d6f21",
      "parents": [
        "cffe9d4cdafdffa840abeb55c50fd2df2d7b0cdb"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "shodgson@solarflare.com",
        "time": "Tue Jun 01 11:18:28 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:07 2010 -0700"
      },
      "message": "sfc: Wait for the link to stay up before running loopback selftest\n\nIt\u0027s been observed that some phys (such as the qt2025c) can\ndo down-up-down-up transitions, presumably as pcs block lock\nsettles down.\n\nThe loopback selftest will start sending data immediately\nafter the link comes up. Work around this by waiting for\nthe link state to stay up for two consecutive polls, rather\nthan one.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cffe9d4cdafdffa840abeb55c50fd2df2d7b0cdb",
      "tree": "147a06c039425cf5844e9572f8faaf3e15624afd",
      "parents": [
        "fd371e32fe53f137a0f940d61772bda92180007b"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "shodgson@solarflare.com",
        "time": "Tue Jun 01 11:18:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 02:21:06 2010 -0700"
      },
      "message": "sfc: Synchronise link_advertising and wanted_fc on Siena\n\nAll of the ethtool code paths keep them in sync, but we need\nto ensure they are sync\u0027d at start of day. Matches the sft9001\ndriver.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "fd371e32fe53f137a0f940d61772bda92180007b"
}
