)]}'
{
  "log": [
    {
      "commit": "d09f51b6997f3f443c5741bc696651e479576715",
      "tree": "6d5eefcbaa9f46d44e8cad626011e886b5d1840c",
      "parents": [
        "1b1ac759d7c6bba6e5f4731ef6ea720b6636e27c",
        "e559e91cce3af215d78b7262360f19b95978aab3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jul 14 23:47:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jul 14 23:47:04 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\nConflicts:\n\n\tcrypto/Kconfig\n"
    },
    {
      "commit": "61075af51f252913401c41fbe94075b46c94e9f1",
      "tree": "bf97f2a5ed93ed1767953b0ae8678d921ebc0473",
      "parents": [
        "370786f9cfd430cb424f00ce4110e75bb1b95a19"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 20:48:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 20:48:19 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: mark protocols __read_mostly\n\nAlso remove two unnecessary EXPORT_SYMBOLs and move the\nnf_conntrack_l3proto_ipv4 declaration to the correct file.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "370786f9cfd430cb424f00ce4110e75bb1b95a19",
      "tree": "df0e51882850f8db8da8f6e4ab746179b1993b9c",
      "parents": [
        "a887c1c148ffb3eb1c193e9869ca5297c6e22078"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@gmx.de",
        "time": "Sat Jul 14 20:47:26 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 20:47:26 2007 -0700"
      },
      "message": "[NETFILTER]: x_tables: add connlimit match\n\nipt_connlimit has been sitting in POM-NG for a long time.\nHere is a new shiny xt_connlimit with:\n\n * xtables\u0027ified\n * will request the layer3 module\n   (previously it hotdropped every packet when it was not loaded)\n * fixed: there was a deadlock in case of an OOM condition\n * support for any layer4 protocol (e.g. UDP/SCTP)\n * using jhash, as suggested by Eric Dumazet\n * ipv6 support\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e2a3123fbe58da9fd3f35cd242087896ace6049f",
      "tree": "f17f8b6f505bb50be97e204c382a92288f75c986",
      "parents": [
        "ffc30690480bdd337e4914302b926d24870b56b2"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Sat Jul 14 20:45:14 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 20:45:14 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: Introduces nf_ct_get_tuplepr and uses it\n\nnf_ct_get_tuple() requires the offset to transport header and that bothers\ncallers such as icmp[v6] l4proto modules. This introduces new function\nto simplify them.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ffc30690480bdd337e4914302b926d24870b56b2",
      "tree": "805dfdda135a6f91648aded75b1cfb754705a4b4",
      "parents": [
        "d87d8469e2dd19a3a134b99f78288d41854c614b"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Sat Jul 14 20:44:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 20:44:50 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: make l3proto-\u003eprepare() generic and renames it\n\nThe icmp[v6] l4proto modules parse headers in ICMP[v6] error to get tuple.\nBut they have to find the offset to transport protocol header before that.\nTheir processings are almost same as prepare() of l3proto modules.\nThis makes prepare() more generic to simplify icmp[v6] l4proto module\nlater.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6460d948f3ebf7d5040328a60a0ab7221f69945b",
      "tree": "d7c2a7eda9f20a03698df32bdc4677ca0c2479d5",
      "parents": [
        "febca281f677a775c61cd0572c2f35e4ead9e7d5"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@broadcom.com",
        "time": "Sat Jul 14 19:07:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 19:07:52 2007 -0700"
      },
      "message": "[NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices.\n\nAdd ethtool utility function to set or clear IPV6_CSUM feature flag.\nModify tg3.c and bnx2.c to use this function when doing ethtool -K\nto change tx checksum.\n\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "febca281f677a775c61cd0572c2f35e4ead9e7d5",
      "tree": "64a58deba476ff3dbc7468d6d2e8e33e1351bf68",
      "parents": [
        "13fdc9a74df0fec70f421c6891e184ed8c3b9088"
      ],
      "author": {
        "name": "Ursula Braun",
        "email": "braunu@de.ibm.com",
        "time": "Sat Jul 14 19:04:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 19:04:25 2007 -0700"
      },
      "message": "[AF_IUCV]: Add lock when updating accept_q\n\nThe accept_queue of an af_iucv socket will be corrupted, if\nadding and deleting of entries in this queue occurs at the\nsame time (connect request from one client, while accept call\nis processed for another client).\nSolution: add locking when updating accept_q\n\nSigned-off-by: Ursula Braun \u003cbraunu@de.ibm.com\u003e\nAcked-by: Frank Pavlic \u003cfpavlic@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acd159b6b5828175be6b9ccccd9b054239ec63e9",
      "tree": "bf0af1a1700a114f489bce36a85f8b0947287268",
      "parents": [
        "cf3842ec5015c862f4869e3641a8549393bb958e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Jul 14 19:00:59 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 19:00:59 2007 -0700"
      },
      "message": "[INET_SOCK]: make net/ipv4/inet_timewait_sock.c:__inet_twsk_kill() static\n\nThis patch makes the needlessly global __inet_twsk_kill() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf3842ec5015c862f4869e3641a8549393bb958e",
      "tree": "6c2f0158504f3463fcca1359de90b699cb636e97",
      "parents": [
        "b3b0b681b12478a7afa7d1f3d58be96830e16c7d",
        "63fc33ceb0ccc08b3f62d7bfe56a33eb33ca9427"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jul 14 18:58:49 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jul 14 18:58:49 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-davem\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
      "tree": "a65d5e4be77666600c0005c5f4c9091df63a3a1b",
      "parents": [
        "56addd6eeeb4e11f5a0af7093ca078e0f29140e0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:55:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:55:06 2007 -0700"
      },
      "message": "[NET]: Add macvlan driver\n\nAdd macvlan driver, which allows to create virtual ethernet devices\nbased on MAC address.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56addd6eeeb4e11f5a0af7093ca078e0f29140e0",
      "tree": "814e84aa686d9fec602f977901634ebf576d039d",
      "parents": [
        "6c78dcbd47a68a7d25d2bee7a6c74b9136cb5fde"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:53:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:53:28 2007 -0700"
      },
      "message": "[VLAN]: Use multicast list synchronization helpers\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6c78dcbd47a68a7d25d2bee7a6c74b9136cb5fde",
      "tree": "21e4a2ea3eb7ed87ce525c59bb8c4d23d8c84589",
      "parents": [
        "a0a400d79e3dd7843e7e81baa3ef2957bdc292d0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:52:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:52:56 2007 -0700"
      },
      "message": "[VLAN]: Fix promiscous/allmulti synchronization races\n\nThe set_multicast_list function may be called without holding the rtnl\nmutex, resulting in races when changing the underlying device\u0027s promiscous\nand allmulti state. Use the change_rx_mode hook, which is always invoked\nunder the rtnl.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a0a400d79e3dd7843e7e81baa3ef2957bdc292d0",
      "tree": "1391190938fb43587967f44f0ab139a2522b4a65",
      "parents": [
        "24023451c8df726692e2f52288a20870d13b501f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:52:02 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:52:02 2007 -0700"
      },
      "message": "[NET]: dev_mcast: add multicast list synchronization helpers\n\nThe method drivers currently use to synchronize multicast lists is not\nvery pretty:\n\n- walk the multicast list\n- search each entry on a copy of the previous list\n- if new add to lower device\n- walk the copy of the previous list\n- search each entry on the current list\n- if removed delete from lower device\n- copy entire list\n\nThis patch adds a new field to struct dev_addr_list to store the\nsynchronization state and adds two helper functions for synchronization\nand cleanup.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24023451c8df726692e2f52288a20870d13b501f",
      "tree": "b80c48dfe817a1a18484dadbc110ca07353c86c8",
      "parents": [
        "e6c9116d1dc984cb7ecf1b0fe26ca4a8ab36bb57"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:51:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:51:31 2007 -0700"
      },
      "message": "[NET]: Add net_device change_rx_mode callback\n\nCurrently the set_multicast_list (and set_rx_mode) callbacks are\nresponsible for configuring the device according to the IFF_PROMISC,\nIFF_MULTICAST and IFF_ALLMULTI flags and the mc_list (and uc_list in\ncase of set_rx_mode).\n\nThese callbacks can be invoked from BH context without the rtnl_mutex\nby dev_mc_add/dev_mc_delete, which makes reading the device flags and\npromiscous/allmulti count racy. For real hardware drivers that just\ncommit all changes to the hardware this is not a real problem since\nthe stack guarantees to call them for every change, so at least the\nfinal call will not race and commit the correct configuration to the\nhardware.\n\nFor software devices that want to synchronize promiscous and multicast\nstate to an underlying device however this can cause corruption of the\nunderlying device\u0027s flags or promisc/allmulti counts.\n\nWhen the software device is concurrently put in promiscous or allmulti\nmode while set_multicast_list is invoked from bottem half context, the\ndevice might synchronize the change to the underlying device without\nholding the rtnl_mutex, which races with concurrent changes to the\nunderlying device.\n\nAdd a dev-\u003echange_rx_flags hook that is invoked when any of the flags\nthat affect rx filtering change (under the rtnl_mutex), which allows\ndrivers to perform synchronization immediately and only synchronize\nthe address lists in set_multicast_list/set_rx_mode.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16cefa8c3863721fd40445a1b34dea18cd16ccfe",
      "tree": "c8e58ca06e2edfd667d3e6062a642b80cc58e5e7",
      "parents": [
        "4fbef206daead133085fe33905f5e842d38fb8da",
        "d8558f99fbc5ef5d4ae76b893784005056450f82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 16:46:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 16:46:18 2007 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (122 commits)\n  sunrpc: drop BKL around wrap and unwrap\n  NFSv4: Make sure unlock is really an unlock when cancelling a lock\n  NLM: fix source address of callback to client\n  SUNRPC client: add interface for binding to a local address\n  SUNRPC server: record the destination address of a request\n  SUNRPC: cleanup transport creation argument passing\n  NFSv4: Make the NFS state model work with the nosharedcache mount option\n  NFS: Error when mounting the same filesystem with different options\n  NFS: Add the mount option \"nosharecache\"\n  NFS: Add support for mounting NFSv4 file systems with string options\n  NFS: Add final pieces to support in-kernel mount option parsing\n  NFS: Introduce generic mount client API\n  NFS: Add enums and match tables for mount option parsing\n  NFS: Improve debugging output in NFS in-kernel mount client\n  NFS: Clean up in-kernel NFS mount\n  NFS: Remake nfsroot_mount as a permanent part of NFS client\n  SUNRPC: Add a convenient default for the hostname when calling rpc_create()\n  SUNRPC: Rename rpcb_getport to be consistent with new rpcb_getport_sync name\n  SUNRPC: Rename rpcb_getport_external routine\n  SUNRPC: Allow rpcbind requests to be interrupted by a signal.\n  ...\n"
    },
    {
      "commit": "e030dbf91a87da7e8be3be3ca781558695bea683",
      "tree": "4ff2e01621a888be4098ca48c404775e56a55a0d",
      "parents": [
        "12a22960549979c10a95cc97f8ec63b461c55692",
        "3039f0735a280b54c7364fbfe6a9287f7f0b510a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:52:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:52:27 2007 -0700"
      },
      "message": "Merge branch \u0027ioat-md-accel-for-linus\u0027 of git://lost.foo-projects.org/~dwillia2/git/iop\n\n* \u0027ioat-md-accel-for-linus\u0027 of git://lost.foo-projects.org/~dwillia2/git/iop: (28 commits)\n  ioatdma: add the unisys \"i/oat\" pci vendor/device id\n  ARM: Add drivers/dma to arch/arm/Kconfig\n  iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver\n  iop13xx: surface the iop13xx adma units to the iop-adma driver\n  dmaengine: driver for the iop32x, iop33x, and iop13xx raid engines\n  md: remove raid5 compute_block and compute_parity5\n  md: handle_stripe5 - request io processing in raid5_run_ops\n  md: handle_stripe5 - add request/completion logic for async expand ops\n  md: handle_stripe5 - add request/completion logic for async read ops\n  md: handle_stripe5 - add request/completion logic for async check ops\n  md: handle_stripe5 - add request/completion logic for async compute ops\n  md: handle_stripe5 - add request/completion logic for async write ops\n  md: common infrastructure for running operations with raid5_run_ops\n  md: raid5_run_ops - run stripe operations outside sh-\u003elock\n  raid5: replace custom debug PRINTKs with standard pr_debug\n  raid5: refactor handle_stripe5 and handle_stripe6 (v3)\n  async_tx: add the async_tx api\n  xor: make \u0027xor_blocks\u0027 a library routine for use with async_tx\n  dmaengine: make clients responsible for managing channels\n  dmaengine: refactor dmaengine around dma_async_tx_descriptor\n  ...\n"
    },
    {
      "commit": "31c4ab430a448cfb13fc88779d8a870c7af9f72b",
      "tree": "aec64a8204ea8f89e9743cb16253de9deea4200d",
      "parents": [
        "8b69ad0e690eb5f38c23087247a12e5fde1baeff",
        "f24ae12b3eeb1b956b752d4d5907e311cfa95a1a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:44:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:44:45 2007 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus:\n  [MIPS] Workaround for a sparse warning in include/asm-mips/mach-tx4927/ioremap.h\n  [MIPS] Make show_code static and add __user tag\n  [MIPS] Workaround for a sparse warning in include/asm-mips/compat.h\n  [MIPS] Add some __user tags\n  [MIPS] math-emu minor cleanup\n  [MIPS] Kill CONFIG_TX4927BUG_WORKAROUND\n  [MIPS] Alchemy: Remove code wrapped by dead symbol CONFIG_FB_XPERT98\n  [MIPS] Alchemy: Remove code wrapped by dead symbol CONFIG_AU1000_SRC_CLK\n  [MIPS] Alchemy: Remove code wrapped by dead symbol CONFIG_AU1000_USE32K\n  [MIPS] Alchemy: Remove code wrapped by dead symbol CONFIG_AU1XXX_PSC_SPI\n  [CHAR] Delete leftovers of old Alchemy UART driver\n"
    },
    {
      "commit": "aba2da66cfbf7790ad79d4dee95871127d5ddf5e",
      "tree": "974585e8419f63ebc2fa1e244c494b6b53f5842d",
      "parents": [
        "773208946a132fb733ba273ee8562814f828cc28",
        "f787a50306680c187cf2896a8017937c1bf6dc7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:12:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:13:37 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:\n  [PATCH] sched: small topology.h cleanup\n  [PATCH] sched: fix show_task()/show_tasks() output\n  [PATCH] sched: remove stale version info from kernel/sched_debug.c\n  [PATCH] sched: allow larger granularity\n  [PATCH] sched: fix prio_to_wmult[] for nice 1\n\n[ I re-did the commits to get rid of some bogus merge commit that\n  Ingo had. - Linus ]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f787a50306680c187cf2896a8017937c1bf6dc7e",
      "tree": "1dbc2b37c53759bde6e227e6502ad5555388f305",
      "parents": [
        "4bd77321a833077c5c9ac7b9d284e261e4a8906e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 11 21:21:47 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:11:52 2007 -0700"
      },
      "message": "[PATCH] sched: small topology.h cleanup\n\ntrivial cleanup: LOCAL_DISTANCE and REMOTE_DISTANCE are only used in\ntopology.h and inside an #ifndef section - limit their existence to\nthat #ifndef.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f24ae12b3eeb1b956b752d4d5907e311cfa95a1a",
      "tree": "863e5b10054b4f4fb163229ccdbde208fec246ba",
      "parents": [
        "e1bb828906e54ffb7e8b358516158ffdcf9581b8"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Sat Jul 14 00:06:44 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Jul 13 17:40:01 2007 +0100"
      },
      "message": "[MIPS] Workaround for a sparse warning in include/asm-mips/mach-tx4927/ioremap.h\n\ninclude2/asm/mach-tx49xx/ioremap.h:39:52: warning: cast truncates bits from constant value (fff000000 becomes ff000000)\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "01bebc66793f2cc65104452dc319a8a99f005934",
      "tree": "b559bf839d1b8bcf88686e5a917a94caf286adae",
      "parents": [
        "5e0373b8e449b0c72495a6d8401c53f678b71988"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Fri Jul 13 23:51:38 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Jul 13 17:40:01 2007 +0100"
      },
      "message": "[MIPS] Workaround for a sparse warning in include/asm-mips/compat.h\n\nCast to a __user pointer via \"unsigned long\" to get rid of this warning:\n\ninclude2/asm/compat.h:135:10: warning: cast adds address space to expression (\u003casn:1\u003e)\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "3039f0735a280b54c7364fbfe6a9287f7f0b510a",
      "tree": "1d64cdab174e681660d689d367f0bde4e2884fdd",
      "parents": [
        "5816815f7850509ed51ab94eb4f644e405ccb865"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:19 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:19 2007 -0700"
      },
      "message": "ioatdma: add the unisys \"i/oat\" pci vendor/device id\n\nCc: John Magolan \u003cjohn.magolan@unisys.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "2492c845189a961a92d8537a44d233e8e1e45c6d",
      "tree": "2c13ce489dc271d0391c468beb75e081b899f35c",
      "parents": [
        "39a8d7d13c113e4a98bfdfc45c7233188e4d715f"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:31 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:19 2007 -0700"
      },
      "message": "iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver\n\nAdds the platform device definitions and the architecture specific support\nroutines (i.e. register initialization and descriptor formats) for the\niop-adma driver.\n\nChangelog:\n* add support for \u003e 1k zero sum buffer sizes\n* added dma/aau platform devices to iq80321 and iq80332 setup\n* fixed the calculation in iop_desc_is_aligned\n* support xor buffer sizes larger than 16MB\n* fix places where software descriptors are assumed to be contiguous, only\n  hardware descriptors are contiguous for up to a PAGE_SIZE buffer size\n* convert to async_tx\n* add interrupt support\n* add platform devices for 80219 boards\n* do not call platform register macros in driver code\n* remove switch() statements for compatible register offsets/layouts\n* change over to bitmap based capabilities\n* remove unnecessary ARM assembly statement\n* checkpatch.pl fixes\n* gpl v2 only correction\n* phys move to dma_async_tx_descriptor\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "39a8d7d13c113e4a98bfdfc45c7233188e4d715f",
      "tree": "7595e6b48de6a11d98ad206f4aaa1d976c349e4f",
      "parents": [
        "c211092313b90f898dec61f35207fc282d1eadc3"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:31 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:18 2007 -0700"
      },
      "message": "iop13xx: surface the iop13xx adma units to the iop-adma driver\n\nAdds the platform device definitions and the architecture specific\nsupport routines (i.e. register initialization and descriptor formats) for the\niop-adma driver.\n\nChangelog:\n* added \u0027descriptor pool size\u0027 to the platform data\n* add base support for buffer sizes larger than 16MB (hw max)\n* build error fix from Kirill A. Shutemov\n* rebase for async_tx changes\n* add interrupt support\n* do not call platform register macros in driver code\n* remove unnecessary ARM assembly statement\n* checkpatch.pl fixes\n* gpl v2 only correction\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "c211092313b90f898dec61f35207fc282d1eadc3",
      "tree": "30df0c81f207d0babb3fe56a17419f37e71e973a",
      "parents": [
        "f6dff381af01006ffae3c23cd2e07e30584de0ec"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:26 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:18 2007 -0700"
      },
      "message": "dmaengine: driver for the iop32x, iop33x, and iop13xx raid engines\n\nThe Intel(R) IOP series of i/o processors integrate an Xscale core with\nraid acceleration engines.  The capabilities per platform are:\n\niop219:\n (2) copy engines\niop321:\n (2) copy engines\n (1) xor and block fill engine\niop33x:\n (2) copy and crc32c engines\n (1) xor, xor zero sum, pq, pq zero sum, and block fill engine\niop34x (iop13xx):\n (2) copy, crc32c, xor, xor zero sum, and block fill engines\n (1) copy, crc32c, xor, xor zero sum, pq, pq zero sum, and block fill engine\n\nThe driver supports the features of the async_tx api:\n* asynchronous notification of operation completion\n* implicit (interupt triggered) handling of inter-channel transaction\n  dependencies\n\nThe driver adapts to the platform it is running by two methods.\n1/ #include \u003casm/arch/adma.h\u003e which defines the hardware specific\n   iop_chan_* and iop_desc_* routines as a series of static inline\n   functions\n2/ The private platform data attached to the platform_device defines the\n   capabilities of the channels\n\n20070626: Callbacks are run in a tasklet.  Given the recent discussion on\nLKML about killing tasklets in favor of workqueues I did a quick conversion\nof the driver.  Raid5 resync performance dropped from 50MB/s to 30MB/s, so\nthe tasklet implementation remains until a generic softirq interface is\navailable.\n\nChangelog:\n* fixed a slot allocation bug in do_iop13xx_adma_xor that caused too few\nslots to be requested eventually leading to data corruption\n* enabled the slot allocation routine to attempt to free slots before\nreturning -ENOMEM\n* switched the cleanup routine to solely use the software chain and the\nstatus register to determine if a descriptor is complete.  This is\nnecessary to support other IOP engines that do not have status writeback\ncapability\n* make the driver iop generic\n* modified the allocation routines to understand allocating a group of\nslots for a single operation\n* added a null xor initialization operation for the xor only channel on\niop3xx\n* support xor operations on buffers larger than the hardware maximum\n* split the do_* routines into separate prep, src/dest set, submit stages\n* added async_tx support (dependent operations initiation at cleanup time)\n* simplified group handling\n* added interrupt support (callbacks via tasklets)\n* brought the pending depth inline with ioat (i.e. 4 descriptors)\n* drop dma mapping methods, suggested by Chris Leech\n* don\u0027t use inline in C files, Adrian Bunk\n* remove static tasklet declarations\n* make iop_adma_alloc_slots easier to read and remove chances for a\n  corrupted descriptor chain\n* fix locking bug in iop_adma_alloc_chan_resources, Benjamin Herrenschmidt\n* convert capabilities over to dma_cap_mask_t\n* fixup sparse warnings\n* add descriptor flush before iop_chan_enable\n* checkpatch.pl fixes\n* gpl v2 only correction\n* move set_src, set_dest, submit to async_tx methods\n* move group_list and phys to async_tx\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "b5e98d65d34a1c11a2135ea8a9b2619dbc7216c8",
      "tree": "bf88aad375bb0cbf6c346ec912c06c2607850b21",
      "parents": [
        "e89f89629b5de76e504d1be75c82c4a6b2419583"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:31 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:17 2007 -0700"
      },
      "message": "md: handle_stripe5 - add request/completion logic for async read ops\n\nWhen a read bio is attached to the stripe and the corresponding block is\nmarked R5_UPTODATE, then a read (biofill) operation is scheduled to copy\nthe data from the stripe cache to the bio buffer.  handle_stripe flags the\nblocks to be operated on with the R5_Wantfill flag.  If new read requests\narrive while raid5_run_ops is running they will not be handled until\nhandle_stripe is scheduled to run again.\n\nChangelog:\n* cleanup to_read and to_fill accounting\n* do not fail reads that have reached the cache\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f38e12199a94ca458e4f03c5a2c984fb80adadc5",
      "tree": "706f54c46d4a4c839dd43c1403854dde860c6be5",
      "parents": [
        "e33129d84130459dbb764a1a52a4bfceab3da978"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:30 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:17 2007 -0700"
      },
      "message": "md: handle_stripe5 - add request/completion logic for async compute ops\n\nhandle_stripe will compute a block when a backing disk has failed, or when\nit determines it can save a disk read by computing the block from all the\nother up-to-date blocks.\n\nPreviously a block would be computed under the lock and subsequent logic in\nhandle_stripe could use the newly up-to-date block.  With the raid5_run_ops\nimplementation the compute operation is carried out a later time outside\nthe lock.  To preserve the old functionality we take advantage of the\ndependency chain feature of async_tx to flag the block as R5_Wantcompute\nand then let other parts of handle_stripe operate on the block as if it\nwere up-to-date.  raid5_run_ops guarantees that the block will be ready\nbefore it is used in another operation.\n\nHowever, this only works in cases where the compute and the dependent\noperation are scheduled at the same time.  If a previous call to\nhandle_stripe sets the R5_Wantcompute flag there is no facility to pass the\nasync_tx dependency chain across successive calls to raid5_run_ops.  The\nreq_compute variable protects against this case.\n\nChangelog:\n* remove the req_compute BUG_ON\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "91c00924846a0034020451c280c76baa4299f9dc",
      "tree": "7124ed6706937b793a10c37a861c5fc0f2e5b348",
      "parents": [
        "45b4233caac05da0118b608a9fc2a40a9fc580cd"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:30 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:15 2007 -0700"
      },
      "message": "md: raid5_run_ops - run stripe operations outside sh-\u003elock\n\nWhen the raid acceleration work was proposed, Neil laid out the following\nattack plan:\n\n1/ move the xor and copy operations outside spin_lock(\u0026sh-\u003elock)\n2/ find/implement an asynchronous offload api\n\nThe raid5_run_ops routine uses the asynchronous offload api (async_tx) and\nthe stripe_operations member of a stripe_head to carry out xor+copy\noperations asynchronously, outside the lock.\n\nTo perform operations outside the lock a new set of state flags is needed\nto track new requests, in-flight requests, and completed requests.  In this\nnew model handle_stripe is tasked with scanning the stripe_head for work,\nupdating the stripe_operations structure, and finally dropping the lock and\ncalling raid5_run_ops for processing.  The following flags outline the\nrequests that handle_stripe can make of raid5_run_ops:\n\nSTRIPE_OP_BIOFILL\n - copy data into request buffers to satisfy a read request\nSTRIPE_OP_COMPUTE_BLK\n - generate a missing block in the cache from the other blocks\nSTRIPE_OP_PREXOR\n - subtract existing data as part of the read-modify-write process\nSTRIPE_OP_BIODRAIN\n - copy data out of request buffers to satisfy a write request\nSTRIPE_OP_POSTXOR\n - recalculate parity for new data that has entered the cache\nSTRIPE_OP_CHECK\n - verify that the parity is correct\nSTRIPE_OP_IO\n - submit i/o to the member disks (note this was already performed outside\n   the stripe lock, but it made sense to add it as an operation type\n\nThe flow is:\n1/ handle_stripe sets STRIPE_OP_* in sh-\u003eops.pending\n2/ raid5_run_ops reads sh-\u003eops.pending, sets sh-\u003eops.ack, and submits the\n   operation to the async_tx api\n3/ async_tx triggers the completion callback routine to set\n   sh-\u003eops.complete and release the stripe\n4/ handle_stripe runs again to finish the operation and optionally submit\n   new operations that were previously blocked\n\nNote this patch just defines raid5_run_ops, subsequent commits (one per\nmajor operation type) modify handle_stripe to take advantage of this\nroutine.\n\nChangelog:\n* removed ops_complete_biodrain in favor of ops_complete_postxor and\n  ops_complete_write.\n* removed the raid5_run_ops workqueue\n* call bi_end_io for reads in ops_complete_biofill, saves a call to\n  handle_stripe\n* explicitly handle the 2-disk raid5 case (xor becomes memcpy), Neil Brown\n* fix race between async engines and bi_end_io call for reads, Neil Brown\n* remove unnecessary spin_lock from ops_complete_biofill\n* remove test_and_set/test_and_clear BUG_ONs, Neil Brown\n* remove explicit interrupt handling for channel switching, this feature\n  was absorbed (i.e. it is now implicit) by the async_tx api\n* use return_io in ops_complete_biofill\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a445685647e825c713175d180ffc8dd54d90589b",
      "tree": "d2db5674e51d33162e1e5993b6e6680ec534e2df",
      "parents": [
        "9bc89cd82d6f88fb0ca39b30445c329a430fd66b"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:43 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:15 2007 -0700"
      },
      "message": "raid5: refactor handle_stripe5 and handle_stripe6 (v3)\n\nhandle_stripe5 and handle_stripe6 have very deep logic paths handling the\nvarious states of a stripe_head.  By introducing the \u0027stripe_head_state\u0027\nand \u0027r6_state\u0027 objects, large portions of the logic can be moved to\nsub-routines.\n\n\u0027struct stripe_head_state\u0027 consumes all of the automatic variables that previously\nstood alone in handle_stripe5,6.  \u0027struct r6_state\u0027 contains the handle_stripe6\nspecific variables like p_failed and q_failed.\n\nOne of the nice side effects of the \u0027stripe_head_state\u0027 change is that it\nallows for further reductions in code duplication between raid5 and raid6.\nThe following new routines are shared between raid5 and raid6:\n\n\thandle_completed_write_requests\n\thandle_requests_to_failed_array\n\thandle_stripe_expansion\n\nChanges:\n* v2: fixed \u0027conf-\u003eraid_disk-1\u0027 for the raid6 \u0027handle_stripe_expansion\u0027 path\n* v3: removed the unused \u0027dirty\u0027 field from struct stripe_head_state\n* v3: coalesced open coded bi_end_io routines into return_io()\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9bc89cd82d6f88fb0ca39b30445c329a430fd66b",
      "tree": "7bd0e856abd359f84edea1bacfd1dd32edd93fbb",
      "parents": [
        "685784aaf3cd0e3ff5e36c7ecf6f441cdbf57f73"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 11:10:44 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:14 2007 -0700"
      },
      "message": "async_tx: add the async_tx api\n\nThe async_tx api provides methods for describing a chain of asynchronous\nbulk memory transfers/transforms with support for inter-transactional\ndependencies.  It is implemented as a dmaengine client that smooths over\nthe details of different hardware offload engine implementations.  Code\nthat is written to the api can optimize for asynchronous operation and the\napi will fit the chain of operations to the available offload resources. \n \n\tI imagine that any piece of ADMA hardware would register with the\n\t\u0027async_*\u0027 subsystem, and a call to async_X would be routed as\n\tappropriate, or be run in-line. - Neil Brown\n\nasync_tx exploits the capabilities of struct dma_async_tx_descriptor to\nprovide an api of the following general format:\n\nstruct dma_async_tx_descriptor *\nasync_\u003coperation\u003e(..., struct dma_async_tx_descriptor *depend_tx,\n\t\t\tdma_async_tx_callback cb_fn, void *cb_param)\n{\n\tstruct dma_chan *chan \u003d async_tx_find_channel(depend_tx, \u003coperation\u003e);\n\tstruct dma_device *device \u003d chan ? chan-\u003edevice : NULL;\n\tint int_en \u003d cb_fn ? 1 : 0;\n\tstruct dma_async_tx_descriptor *tx \u003d device ?\n\t\tdevice-\u003edevice_prep_dma_\u003coperation\u003e(chan, len, int_en) : NULL;\n\n\tif (tx) { /* run \u003coperation\u003e asynchronously */\n\t\t...\n\t\ttx-\u003etx_set_dest(addr, tx, index);\n\t\t...\n\t\ttx-\u003etx_set_src(addr, tx, index);\n\t\t...\n\t\tasync_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param);\n\t} else { /* run \u003coperation\u003e synchronously */\n\t\t...\n\t\t\u003coperation\u003e\n\t\t...\n\t\tasync_tx_sync_epilog(flags, depend_tx, cb_fn, cb_param);\n\t}\n\n\treturn tx;\n}\n\nasync_tx_find_channel() returns a capable channel from its pool.  The\nchannel pool is organized as a per-cpu array of channel pointers.  The\nasync_tx_rebalance() routine is tasked with managing these arrays.  In the\nuniprocessor case async_tx_rebalance() tries to spread responsibility\nevenly over channels of similar capabilities.  For example if there are two\ncopy+xor channels, one will handle copy operations and the other will\nhandle xor.  In the SMP case async_tx_rebalance() attempts to spread the\noperations evenly over the cpus, e.g. cpu0 gets copy channel0 and xor\nchannel0 while cpu1 gets copy channel 1 and xor channel 1.  When a\ndependency is specified async_tx_find_channel defaults to keeping the\noperation on the same channel.  A xor-\u003ecopy-\u003exor chain will stay on one\nchannel if it supports both operation types, otherwise the transaction will\ntransition between a copy and a xor resource.\n\nCurrently the raid5 implementation in the MD raid456 driver has been\nconverted to the async_tx api.  A driver for the offload engines on the\nIntel Xscale series of I/O processors, iop-adma, is provided in a later\ncommit.  With the iop-adma driver and async_tx, raid456 is able to offload\ncopy, xor, and xor-zero-sum operations to hardware engines.\n \nOn iop342 tiobench showed higher throughput for sequential writes (20 - 30%\nimprovement) and sequential reads to a degraded array (40 - 55%\nimprovement).  For the other cases performance was roughly equal, +/- a few\npercentage points.  On a x86-smp platform the performance of the async_tx\nimplementation (in synchronous mode) was also +/- a few percentage points\nof the original implementation.  According to \u0027top\u0027 on iop342 CPU\nutilization drops from ~50% to ~15% during a \u0027resync\u0027 while the speed\naccording to /proc/mdstat doubles from ~25 MB/s to ~50 MB/s.\n \nThe tiobench command line used for testing was: tiobench --size 2048\n--block 4096 --block 131072 --dir /mnt/raid --numruns 5\n* iop342 had 1GB of memory available\n\nDetails:\n* if CONFIG_DMA_ENGINE\u003dn the asynchronous path is compiled away by making\n  async_tx_find_channel a static inline routine that always returns NULL\n* when a callback is specified for a given transaction an interrupt will\n  fire at operation completion time and the callback will occur in a\n  tasklet.  if the the channel does not support interrupts then a live\n  polling wait will be performed\n* the api is written as a dmaengine client that requests all available\n  channels\n* In support of dependencies the api implicitly schedules channel-switch\n  interrupts.  The interrupt triggers the cleanup tasklet which causes\n  pending operations to be scheduled on the next channel\n* Xor engines treat an xor destination address differently than a software\n  xor routine.  To the software routine the destination address is an implied\n  source, whereas engines treat it as a write-only destination.  This patch\n  modifies the xor_blocks routine to take a an explicit destination address\n  to mirror the hardware.\n\nChangelog:\n* fixed a leftover debug print\n* don\u0027t allow callbacks in async_interrupt_cond\n* fixed xor_block changes\n* fixed usage of ASYNC_TX_XOR_DROP_DEST\n* drop dma mapping methods, suggested by Chris Leech\n* printk warning fixups from Andrew Morton\n* don\u0027t use inline in C files, Adrian Bunk\n* select the API when MD is enabled\n* BUG_ON xor source counts \u003c\u003d 1\n* implicitly handle hardware concerns like channel switching and\n  interrupts, Neil Brown\n* remove the per operation type list, and distribute operation capabilities\n  evenly amongst the available channels\n* simplify async_tx_find_channel to optimize the fast path\n* introduce the channel_table_initialized flag to prevent early calls to\n  the api\n* reorganize the code to mimic crypto\n* include mm.h as not all archs include it in dma-mapping.h\n* make the Kconfig options non-user visible, Adrian Bunk\n* move async_tx under crypto since it is meant as \u0027core\u0027 functionality, and\n  the two may share algorithms in the future\n* move large inline functions into c files\n* checkpatch.pl fixes\n* gpl v2 only correction\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "685784aaf3cd0e3ff5e36c7ecf6f441cdbf57f73",
      "tree": "10f99829f7d877b87614fe69be77e363c026a8d7",
      "parents": [
        "d379b01e9087a582d58f4b678208a4f8d8376fe7"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:42 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:14 2007 -0700"
      },
      "message": "xor: make \u0027xor_blocks\u0027 a library routine for use with async_tx\n\nThe async_tx api tries to use a dma engine for an operation, but will fall\nback to an optimized software routine otherwise.  Xor support is\nimplemented using the raid5 xor routines.  For organizational purposes this\nroutine is moved to a common area.\n\nThe following fixes are also made:\n* rename xor_block \u003d\u003e xor_blocks, suggested by Adrian Bunk\n* ensure that xor.o initializes before md.o in the built-in case\n* checkpatch.pl fixes\n* mark calibrate_xor_blocks __init, Adrian Bunk\n\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: NeilBrown \u003cneilb@suse.de\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "d379b01e9087a582d58f4b678208a4f8d8376fe7",
      "tree": "155920bca93c18afba66b9d5acfecd359d5bec65",
      "parents": [
        "7405f74badf46b5d023c5d2b670b4471525f6c91"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:42 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:13 2007 -0700"
      },
      "message": "dmaengine: make clients responsible for managing channels\n\nThe current implementation assumes that a channel will only be used by one\nclient at a time.  In order to enable channel sharing the dmaengine core is\nchanged to a model where clients subscribe to channel-available-events.\nInstead of tracking how many channels a client wants and how many it has\nreceived the core just broadcasts the available channels and lets the\nclients optionally take a reference.  The core learns about the clients\u0027\nneeds at dma_event_callback time.\n\nIn support of multiple operation types, clients can specify a capability\nmask to only be notified of channels that satisfy a certain set of\ncapabilities.\n\nChangelog:\n* removed DMA_TX_ARRAY_INIT, no longer needed\n* dma_client_chan_free -\u003e dma_chan_release: switch to global reference\n  counting only at device unregistration time, before it was also happening\n  at client unregistration time\n* clients now return dma_state_client to dmaengine (ack, dup, nak)\n* checkpatch.pl fixes\n* fixup merge with git-ioat\n\nCc: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7405f74badf46b5d023c5d2b670b4471525f6c91",
      "tree": "20dd20571637dba1c2b04c7b13ac208c33b5706b",
      "parents": [
        "428ed6024fa74a271142f3257966e9b5e1cb37a1"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 11:10:43 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:11 2007 -0700"
      },
      "message": "dmaengine: refactor dmaengine around dma_async_tx_descriptor\n\nThe current dmaengine interface defines mutliple routines per operation,\ni.e. dma_async_memcpy_buf_to_buf, dma_async_memcpy_buf_to_page etc.  Adding\nmore operation types (xor, crc, etc) to this model would result in an\nunmanageable number of method permutations.\n\n\tAre we really going to add a set of hooks for each DMA engine\n\twhizbang feature?\n\t\t- Jeff Garzik\n\nThe descriptor creation process is refactored using the new common\ndma_async_tx_descriptor structure.  Instead of per driver\ndo_\u003coperation\u003e_\u003cdest\u003e_to_\u003csrc\u003e methods, drivers integrate\ndma_async_tx_descriptor into their private software descriptor and then\ndefine a \u0027prep\u0027 routine per operation.  The prep routine allocates a\ndescriptor and ensures that the tx_set_src, tx_set_dest, tx_submit routines\nare valid.  Descriptor creation and submission becomes:\n\nstruct dma_device *dev;\nstruct dma_chan *chan;\nstruct dma_async_tx_descriptor *tx;\n\ntx \u003d dev-\u003edevice_prep_dma_\u003coperation\u003e(chan, len, int_flag)\ntx-\u003etx_set_src(dma_addr_t, tx, index /* for multi-source ops */)\ntx-\u003etx_set_dest(dma_addr_t, tx, index)\ntx-\u003etx_submit(tx)\n\nIn addition to the refactoring, dma_async_tx_descriptor also lays the\ngroundwork for definining cross-channel-operation dependencies, and a\ncallback facility for asynchronous notification of operation completion.\n\nChangelog:\n* drop dma mapping methods, suggested by Chris Leech\n* fix ioat_dma_dependency_added, also caught by Andrew Morton\n* fix dma_sync_wait, change from Andrew Morton\n* uninline large functions, change from Andrew Morton\n* add tx-\u003ecallback \u003d NULL to dmaengine calls to interoperate with async_tx\n  calls\n* hookup ioat_tx_submit\n* convert channel capabilities to a \u0027cpumask_t like\u0027 bitmap\n* removed DMA_TX_ARRAY_INIT, no longer needed\n* checkpatch.pl fixes\n* make set_src, set_dest, and tx_submit descriptor specific methods\n* fixup git-ioat merge\n* move group_list and phys to dma_async_tx_descriptor\n\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9374430a52dfae5c013b88f7f030c04a6774d410",
      "tree": "ce1ee8eee4e79fbb9486e810278d1092afc74a44",
      "parents": [
        "66f49739fe1591197364f2dad1b67b975e8f5e85",
        "13f9966b3ba5b45f47f2ea0eb0a90afceedfbb1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:46:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:46:58 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: (149 commits)\n  USB: ohci-pnx4008: Remove unnecessary cast of return value of kzalloc\n  USB: additions to the quirk list\n  usb-storage: implement autosuspend\n  USB: cdc-acm: add new device id to option driver\n  USB: goku_udc trivial cleanups\n  USB: usb gadget stack can now -DDEBUG with Kconfig\n  usb gadget stack: remove usb_ep_*_buffer(), part 2\n  usb gadget stack: remove usb_ep_*_buffer(), part 1\n  USB: pxa2xx_udc -- cleanups, mostly removing dma hooks\n  USB: pxa2xx_udc: use generic gpio layer\n  USB: quirk for samsung printer\n  USB: usb/dma doc updates\n  USB: drivers/usb/storage/unusual_devs.h whitespace cleanup\n  USB: remove Makefile reference to obsolete OHCI_AT91\n  USB: io_*: remove bogus termios no change checks\n  USB: mos7720: remove bogus no termios change check\n  USB: visor and whiteheat: remove bogus termios change checks\n  USB: pl2303: remove bogus checks and fix speed support to use tty_get_baud_rate()\n  USB: mos7840.c: turn this into a serial driver\n  USB: make the usb_device numa_node get assigned from controller\n  ...\n"
    },
    {
      "commit": "66f49739fe1591197364f2dad1b67b975e8f5e85",
      "tree": "5c804af8a3789c0cdf319e27bad3005d6a471cdf",
      "parents": [
        "0cdf6990e992902ae59cbc625d28cb41390f378e",
        "57e4acb3f63e1d3d74a75613eefde8b2d68164e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:46:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:46:01 2007 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] Un-break ia64 build\n"
    },
    {
      "commit": "0cdf6990e992902ae59cbc625d28cb41390f378e",
      "tree": "0c01cf792be5f36ea34064036005f424ab95a571",
      "parents": [
        "de081fa517fed81b0369f2e90ca87c30182879c8",
        "cec7c893d8654723028f09d33341e42673558057"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:45:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:45:40 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (76 commits)\n  IB: Update MAINTAINERS with Hal\u0027s new email address\n  IB/mlx4: Implement query SRQ\n  IB/mlx4: Implement query QP\n  IB/cm: Send no match if a SIDR REQ does not match a listen\n  IB/cm: Fix handling of duplicate SIDR REQs\n  IB/cm: cm_msgs.h should include ib_cm.h\n  IB/cm: Include HCA ACK delay in local ACK timeout\n  IB/cm: Use spin_lock_irq() instead of spin_lock_irqsave() when possible\n  IB/sa: Make sure SA queries use default P_Key\n  IPoIB: Recycle loopback skbs instead of freeing and reallocating\n  IB/mthca: Replace memset(\u003caddr\u003e, 0, PAGE_SIZE) with clear_page(\u003caddr\u003e)\n  IPoIB/cm: Fix warning if IPV6 is not enabled\n  IB/core: Take sizeof the correct pointer when calling kmalloc()\n  IB/ehca: Improve latency by unlocking after triggering the hardware\n  IB/ehca: Notify consumers of LID/PKEY/SM changes after nondisruptive events\n  IB/ehca: Return QP pointer in poll_cq()\n  IB/ehca: Change idr spinlocks into rwlocks\n  IB/ehca: Refactor sync between completions and destroy_cq using atomic_t\n  IB/ehca: Lock renaming, static initializers\n  IB/ehca: Report RDMA atomic attributes in query_qp()\n  ...\n"
    },
    {
      "commit": "c67ab134ba9f83f9de86e58adfeaa14a9efa6e00",
      "tree": "df9022b4a38e955abbf254d71e00ac1fecce6420",
      "parents": [
        "9d8bab58b758cd5a96d368a8cc64111c9ab50407"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Sun Jul 01 12:21:00 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:42 2007 -0700"
      },
      "message": "usb gadget stack: remove usb_ep_*_buffer(), part 2\n\nThis patch removes controller driver infrastructure which supported\nthe now-removed usb_ep_{alloc,free}_buffer() calls.\n\nAs can be seen, many of the implementations of this were broken to\nvarious degrees.  Many didn\u0027t properly return dma-coherent mappings;\nthose which did so were necessarily ugly because of bogosity in the\nunderlying dma_free_coherent() calls ... which on many platforms\ncan\u0027t be called from the same contexts (notably in_irq) from which\ntheir dma_alloc_coherent() sibling can be called.\n\nThe main potential downside of removing this is that gadget drivers\nwouldn\u0027t have specific knowledge that the controller drivers have:\nendpoints that aren\u0027t dma-capable don\u0027t need any dma mappings at all.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9d8bab58b758cd5a96d368a8cc64111c9ab50407",
      "tree": "710695adf1e50f2e4680c130d548ccd3e6251630",
      "parents": [
        "ad8c623f4f48085edd51c7f4cdfd10295547bf45"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Sun Jul 01 11:04:54 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:42 2007 -0700"
      },
      "message": "usb gadget stack: remove usb_ep_*_buffer(), part 1\n\nRemove usb_ep_{alloc,free}_buffer() calls, for small dma-coherent buffers.\nThis patch just removes the interface and its users; later patches will\nremove controller driver support.\n\n  - This interface is invariably not implemented correctly in the\n    controller drivers (e.g. using dma pools, a mechanism which\n    post-dates the interface by several years).\n\n  - At this point no gadget driver really *needs* to use it.  In\n    current kernels, any driver that needs such a mechanism could\n    allocate a dma pool themselves.\n\nRemoving this interface is thus a simplification and improvement.\n\nNote that the gmidi.c driver had a bug in this area; fixed.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9068a4c6467986e8fda5bdb29bd5f10c6788e2ff",
      "tree": "dcb2889be80b750da2454c60a1d567e391ee560b",
      "parents": [
        "e4f747373cd96c86db3c64c21710748c6889c03c"
      ],
      "author": {
        "name": "Milan Svoboda",
        "email": "msvoboda@ra.rockwell.com",
        "time": "Sat Jun 30 06:25:35 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:42 2007 -0700"
      },
      "message": "USB: pxa2xx_udc: use generic gpio layer\n\nThis patch lets the pxa2xx_udc use the generic gpio layer,\non the relevant PXA and IXP systems.\n\nSigned-off-by: Milan Svoboda \u003cmsvoboda@ra.rockwell.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "165fe97ed6107d3cde63592d5ac36400a5eb9f6f",
      "tree": "824bb475b4f36af465989c5dac62f4097a1bd01c",
      "parents": [
        "50d2dc7266573dfbdc84fc207494dd21315782ef"
      ],
      "author": {
        "name": "Craig W. Nadler",
        "email": "craig@nadler.us",
        "time": "Fri Jun 15 23:14:35 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:40 2007 -0700"
      },
      "message": "USB: add IAD support to usbfs and sysfs\n\nUSB_IAD: Adds support for USB Interface Association Descriptors.\n\nThis patch adds support to the USB host stack for parsing, storing, and\ndisplaying Interface Association Descriptors. In /proc/bus/usb/devices\nlines starting with A: show the fields in an IAD. In sysfs if an\ninterface on a USB device is referenced by an IAD the following files\nwill be added to the sysfs directory for that interface:\niad_bFirstInterface, iad_bInterfaceCount, iad_bFunctionClass, and\niad_bFunctionSubClass, iad_bFunctionProtocol\n\nSigned-off-by: Craig W. Nadler \u003ccraig@nadler.us\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8b3b01c898a44c2fc7217eb579982b9d132113f5",
      "tree": "4d7da145c0fa47243b0f67b62fcdfaa4f53d184e",
      "parents": [
        "300871cd963e24a68aaa9b762f4a10403697d9be"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jun 13 08:02:11 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:38 2007 -0700"
      },
      "message": "USB: Add URB_FREE_BUFFER flag and the logic behind it\n\nUSB: Add URB_FREE_BUFFER flag for freeing the transfer buffer\n\nIn some cases it is not needed that the driver keeps track of the\ntransfer buffer of an URB. It can be simply freed along with the\nURB itself when the reference count goes down to zero. The new\nflag URB_FREE_BUFFER enables this behavior.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "b41a60eca833d76593d4dac8a59f5c38714194ee",
      "tree": "a7c5cf721d9978503c3c8c88183747cf954b8733",
      "parents": [
        "54515fe528d8c6f9bfaf7d0b9fffb908deecad78"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed May 30 15:39:33 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:30 2007 -0700"
      },
      "message": "USB: add power/persist device attribute\n\nThis patch (as920) adds an extra level of protection to the\nUSB-Persist facility.  Now it will apply by default only to hubs; for\nall other devices the user must enable it explicitly by setting the\npower/persist device attribute.\n\nThe disconnect_all_children() routine in hub.c has been removed and\nits code placed inline.  This is the way it was originally as part of\nhub_pre_reset(); the revised usage in hub_reset_resume() is\nsufficiently different that the code can no longer be shared.\nLikewise, mark_children_for_reset() is now inline as part of\nhub_reset_resume().  The end result looks much cleaner than before.\n\nThe sysfs interface is updated to add the new attribute file, and\nthere are corresponding documentation updates.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f07600cf9eb3ee92777b2001e564faa413144a99",
      "tree": "e48f2e3051fde642e80269bf9c54b289d4abdb44",
      "parents": [
        "624d6c0732d2c4ac00945ad79dbb6ff39ba90ee3"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed May 30 15:38:16 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:30 2007 -0700"
      },
      "message": "USB: add reset_resume method\n\nThis patch (as918) introduces a new USB driver method: reset_resume.\nIt is called when a device needs to be reset as part of a resume\nprocedure (whether because of a device quirk or because of the\nUSB-Persist facility), thereby taking over a role formerly assigned to\nthe post_reset method.  As a consequence, post_reset no longer needs\nan argument indicating whether it is being called as part of a\nreset-resume.  This separation of functions makes the code clearer.\n\nIn addition, the pre_reset and post_reset method return types are\nchanged; they now must return an error code.  The return value is\nunused at present, but at some later time we may unbind drivers and\nre-probe if they encounter an error during reset handling.\n\nThe existing pre_reset and post_reset methods in the usbhid,\nusb-storage, and hub drivers are updated to match the new\nrequirements.  For usbhid the post_reset routine is also used for\nreset_resume (duplicate method pointers); for the other drivers a new\nreset_resume routine is added.  The change to hub.c looks bigger than\nit really is, because mark_children_for_reset_resume() gets moved down\nnext to the new hub_reset_resume() routine.\n\nA minor change to usb-storage makes the usb_stor_report_bus_reset()\nroutine acquire the host lock instead of requiring the caller to hold\nit already.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCC: Matthew Dharm \u003cmdharm-usb@one-eyed-alien.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "51a2f077c44e559841b09de6da605b4d3ae40dad",
      "tree": "2d4d0064994de2223abac57f7242579649717ae6",
      "parents": [
        "ffcdc18d64d73ecce49c182f969977ae88ff4384"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oneukum@suse.de",
        "time": "Fri May 25 13:40:56 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:51 2007 -0700"
      },
      "message": "USB: introduce usb_anchor\n\n- introduction of usb_anchor and its methods\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a5262dcfda9163ca1f8a64349a6f7ba640ac1dc2",
      "tree": "268090b3a52fb2a3e3e08b91a934e76558d187f8",
      "parents": [
        "8234509c3968a87faa301a8a9d7f8b987cd9181c"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Mon May 14 19:36:41 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:50 2007 -0700"
      },
      "message": "USB: export \u003clinux/usb_gadgetfs\u003e as \u003clinux/usb/gadgetfs.h\u003e\n\nMake sure gadgetfs userspace interface is properly exported:\n\n - Move \u003clinux/usb_gadgetfs.h\u003e to \u003clinux/usb/gadgetfs.h\u003e;\n - Export it using Kbuild;\n - Add an #include guard;\n - Correct some internal documentation;\n - Update struct layout so it\u0027s the same on 32/64 bit kernels.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "8538f96ae5aada1c04d69a993b20ad160b191d47",
      "tree": "53545dc889b838ad9807acff4d2b4409f0661b72",
      "parents": [
        "7f9985c2e4e5555b750d6f891b4923e63cc834c1"
      ],
      "author": {
        "name": "Daniel Drake",
        "email": "dsd@gentoo.org",
        "time": "Thu May 10 00:32:24 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:48 2007 -0700"
      },
      "message": "USB: add USB_DEVICE_AND_INTERFACE_INFO for device matching\n\nRecently, the USB device matching code stopped matching generic interface\nmatches against devices with vendor-specific device class values.\n\nSome drivers now need to explicitly match USB device ID\u0027s (in addition to\ngeneric interface info) to retain the same behaviour as before. This new macro,\nsuggested by Alan Stern, makes the explicit device/interface matching a little\nsimpler for those users.\n\nSigned-off-by: Daniel Drake \u003cdsd@gentoo.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6bc6cff52e0c4c4c876b1b8a5750041da61ad42b",
      "tree": "98b6815b071be2b0dc8e10b661a7fb1e3cdd9e82",
      "parents": [
        "383975d765523a56dc43a6cd6d52e9b376800cf2"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri May 04 11:53:03 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:47 2007 -0700"
      },
      "message": "USB: add RESET_RESUME device quirk\n\nThis patch (as888) adds a new USB device quirk for devices which are\nunable to resume correctly.  By using the new code added for the\nUSB-persist facility, it is a simple matter to reset these devices\ninstead of resuming them.  To get things kicked off, a quirk entry is\nadded for the Philips PSC805.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0458d5b4c9cc4ca0f62625d0144ddc4b4bc97a3c",
      "tree": "8b1fcb4f063ef4aa6f2e3cd41a60d986a1e432d4",
      "parents": [
        "ce7cd137fced114d49178b73d468b82096a107fb"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri May 04 11:52:20 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:47 2007 -0700"
      },
      "message": "USB: add USB-Persist facility\n\nThis patch (as886) adds the controversial USB-persist facility,\nallowing USB devices to persist across a power loss during system\nsuspend.\n\nThe facility is controlled by a new Kconfig option (with appropriate\nwarnings about the potential dangers); when the option is off the\nbehavior will remain the same as it is now.  But when the option is\non, people will be able to use suspend-to-disk and keep their USB\nfilesystems intact -- something particularly valuable for small\nmachines where the root filesystem is on a USB device!\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ec22559e0b7a05283a3413bda5d177e42c950e23",
      "tree": "5f7a9ae8907cdf910532381111ce4b8aae877e05",
      "parents": [
        "dd172d72addefd89795e819cc2cc3eb1b9d12a7f"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oneukum@suse.de",
        "time": "Fri Apr 27 20:54:57 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:44 2007 -0700"
      },
      "message": "USB: suspend support for usb serial\n\nthis implements generic support for suspend/resume for usb serial.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "57e4acb3f63e1d3d74a75613eefde8b2d68164e3",
      "tree": "f92c4c52f002a3b31b75b6336c80fe050df06c73",
      "parents": [
        "dd172d72addefd89795e819cc2cc3eb1b9d12a7f"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jul 12 16:04:39 2007 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jul 12 16:04:39 2007 -0700"
      },
      "message": "[IA64] Un-break ia64 build\n\nCommit 91a6902958f052358899f58683d44e36228d85c2 added an extra\nargument to pci_read_legacy_io() and pci_write_legacy_io().  But\nthe prototypes in include/asm-ia64/pci.h were not updated.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "65541cb7cf353946ecd78016a453b453b8830656",
      "tree": "0a93ed27fdb6caf3f90250eaaf179b560e6742f3",
      "parents": [
        "6a775e2ba4f7635849ade628e64723ab2beef0bc"
      ],
      "author": {
        "name": "Jack Morgenstein",
        "email": "jackm@dev.mellanox.co.il",
        "time": "Thu Jun 21 13:03:11 2007 +0300"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Thu Jul 12 15:41:24 2007 -0700"
      },
      "message": "IB/mlx4: Implement query SRQ\n\nSigned-off-by: Dotan Barak \u003cdotanb@mellanox.co.il\u003e\nSigned-off-by: Jack Morgenstein \u003cjackm@dev.mellanox.co.il\u003e\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "6a775e2ba4f7635849ade628e64723ab2beef0bc",
      "tree": "3c80d06d5f2f7135c81dddc2dcd6e536f9ecf22d",
      "parents": [
        "6164c8cd1333403a28202f7c7e64ff9086d8f1aa"
      ],
      "author": {
        "name": "Jack Morgenstein",
        "email": "jackm@dev.mellanox.co.il",
        "time": "Thu Jun 21 12:27:47 2007 +0300"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Thu Jul 12 15:41:00 2007 -0700"
      },
      "message": "IB/mlx4: Implement query QP\n\nSigned-off-by: Jack Morgenstein \u003cjackm@dev.mellanox.co.il\u003e\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "4aabab2181f20560948c2045ce1faaa9ac1507a8",
      "tree": "6556e126687c9cbb4b4a35a8ad8c327df30ac256",
      "parents": [
        "bb50cbbd4beacd5ceda76c32fcb116c67fe8c66c",
        "ca9ced7f6798868f9d2c81a59b49f8c2136685d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 14:17:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 14:17:12 2007 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (50 commits)\n  [ARM] sa1100: remove boot time RTC initialisation\n  [ARM] sa1100: stop doing our own rtc management over suspend\n  [ARM] 4474/1: Do not check the PSR_F_BIT in valid_user_regs\n  [ARM] 4473/2:  Take the HWCAP definitions out of the elf.h file\n  [ARM] pxa: move platform devices to separate header file\n  [ARM] pxa: move device registration into CPU-specific file\n  [ARM] pxa: remove boot time RTC initialisation\n  [ARM] pxa: stop doing our own rtc management over suspend\n  [ARM] 4451/1: pxa: make dma.c generic and remove cpu specific dma code\n  [ARM] 4450/1: pxa: add pxa25x_init_irq() and pxa27x_init_irq()\n  [ARM] 4440/1: PXA: enable the checking of ICIP2 for IRQs\n  [ARM] 4438/1: PXA: remove #ifdef .. #endif from pxa_gpio_demux_handler()\n  [ARM] 4437/1: PXA: move the GPIO IRQ initialization code to pxa_init_irq_gpio()\n  [ARM] 4436/1: PXA: move low IRQ initialization code to pxa_init_irq_low()\n  [ARM] 4435/1: PXA: remove PXA_INTERNAL_IRQS\n  [ARM] 4434/1: PXA: remove PXA_IRQ_SKIP\n  [ARM] pxa: Fix PXA27x suspend type validation, remove pxa_pm_prepare()\n  [ARM] pxa: move pm_ops structure into CPU specific files\n  [ARM] pxa: introduce cpu_is_pxaXXX macros\n  [ARM] pxa: remove MMC register defines from pxa-regs.h\n  ...\n"
    },
    {
      "commit": "bb50cbbd4beacd5ceda76c32fcb116c67fe8c66c",
      "tree": "d57fe1a7c4214afbaacbcc5fb62ea6a5e9169b3f",
      "parents": [
        "702ed6ef375c19d65f2eeeefd3851476f2c4cee4",
        "d4cf291526a74cc33d33700a35b74395eec812fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:46:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:46:48 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6:\n  security: unexport mmap_min_addr\n  SELinux: use SECINITSID_NETMSG instead of SECINITSID_UNLABELED for NetLabel\n  security: Protection for exploiting null dereference using mmap\n  SELinux: Use %lu for inode-\u003ei_no when printing avc\n  SELinux: allow preemption between transition permission checks\n  selinux: introduce schedule points in policydb_destroy()\n  selinux: add selinuxfs structure for object class discovery\n  selinux: change sel_make_dir() to specify inode counter.\n  selinux: rename sel_remove_bools() for more general usage.\n  selinux: add support for querying object classes and permissions from the running policy\n"
    },
    {
      "commit": "0806ca2ab3ef7d7a1bd41a980f661a13ba11acb5",
      "tree": "b0efd7382e59de26f173f61b677a579f3f4ee137",
      "parents": [
        "21ba0f88ae56da82a3a15fe54d729208b64c4f4b",
        "1612b18ccb2318563ba51268289dc3271a6052f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:41:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:41:29 2007 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] Support multiple CPUs going through OS_MCA\n  [IA64] silence GCC ia64 unused variable warnings\n  [IA64] prevent MCA when performing MMIO mmap to PCI config space\n  [IA64] add sn_register_pmi_handler oemcall\n  [IA64] Stop bit for brl instruction\n  [IA64] SN: Correct ROM resource length for BIOS copy\n  [IA64] Don\u0027t set psr.ic and psr.i simultaneously\n"
    },
    {
      "commit": "21ba0f88ae56da82a3a15fe54d729208b64c4f4b",
      "tree": "17ce67f276fe3ea7284c3dc730bdd6a2ec7dfe2f",
      "parents": [
        "dc690d8ef842b464f1c429a376ca16cb8dbee6ae",
        "36e235901f90fb83215be43cbd8f1ca14661ea40"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:40:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:40:57 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (34 commits)\n  PCI: Only build PCI syscalls on architectures that want them\n  PCI: limit pci_get_bus_and_slot to domain 0\n  PCI: hotplug: acpiphp: avoid acpiphp \"cannot get bridge info\" PCI hotplug failure\n  PCI: hotplug: acpiphp: remove hot plug parameter write to PCI host bridge\n  PCI: hotplug: acpiphp: fix slot poweroff problem on systems without _PS3\n  PCI: hotplug: pciehp: wait for 1 second after power off slot\n  PCI: pci_set_power_state(): check for PM capabilities earlier\n  PCI: cpci_hotplug: Convert to use the kthread API\n  PCI: add pci_try_set_mwi\n  PCI: pcie: remove SPIN_LOCK_UNLOCKED\n  PCI: ROUND_UP macro cleanup in drivers/pci\n  PCI: remove pci_dac_dma_... APIs\n  PCI: pci-x-pci-express-read-control-interfaces cleanups\n  PCI: Fix typo in include/linux/pci.h\n  PCI: pci_ids, remove double or more empty lines\n  PCI: pci_ids, add atheros and 3com_2 vendors\n  PCI: pci_ids, reorder some entries\n  PCI: i386: traps, change VENDOR to DEVICE\n  PCI: ATM: lanai, change VENDOR to DEVICE\n  PCI: Change all drivers to use pci_device-\u003erevision\n  ...\n"
    },
    {
      "commit": "dc690d8ef842b464f1c429a376ca16cb8dbee6ae",
      "tree": "77955849af5a15755f5e55e24ae4b9c520583a72",
      "parents": [
        "57399ec9077a4b962b81037aaa279fab52f5e989",
        "91a6902958f052358899f58683d44e36228d85c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:40:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:40:20 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (61 commits)\n  sysfs: add parameter \"struct bin_attribute *\" in .read/.write methods for sysfs binary attributes\n  sysfs: make directory dentries and inodes reclaimable\n  sysfs: implement sysfs_get_dentry()\n  sysfs: move sysfs_drop_dentry() to dir.c and make it static\n  sysfs: restructure add/remove paths and fix inode update\n  sysfs: use sysfs_mutex to protect the sysfs_dirent tree\n  sysfs: consolidate sysfs spinlocks\n  sysfs: make kobj point to sysfs_dirent instead of dentry\n  sysfs: implement sysfs_find_dirent() and sysfs_get_dirent()\n  sysfs: implement SYSFS_FLAG_REMOVED flag\n  sysfs: rename sysfs_dirent-\u003es_type to s_flags and make room for flags\n  sysfs: make sysfs_drop_dentry() access inodes using ilookup()\n  sysfs: Fix oops in sysfs_drop_dentry on x86_64\n  sysfs: use singly-linked list for sysfs_dirent tree\n  sysfs: slim down sysfs_dirent-\u003es_active\n  sysfs: move s_active functions to fs/sysfs/dir.c\n  sysfs: fix root sysfs_dirent -\u003e root dentry association\n  sysfs: use iget_locked() instead of new_inode()\n  sysfs: reorganize sysfs_new_indoe() and sysfs_create()\n  sysfs: fix parent refcounting during rename and move\n  ...\n"
    },
    {
      "commit": "57399ec9077a4b962b81037aaa279fab52f5e989",
      "tree": "847dfb9304001ab9ffc5eef5f20ae514cd01bb90",
      "parents": [
        "e1bd2ac5a6b7a8b625e40c9e9f8b6dea4cf22f85",
        "c6e54a578133fb353a50fb44d650768b3b9eb18e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:38:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:38:50 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (21 commits)\n  libata: remove irq_on from ata_bus_reset() and ata_std_postreset()\n  ata_piix: kill incorrect invalid map value warning\n  libata: add another Maxtor drive with broken NCQ to the list\n  [libata] sata_mv: Fix and clean up per-chip-generation tests\n  [libata] sata_mv: Convert to new exception handling (EH) infrastructure\n  [libata] sata_mv: minor bug fixes, enhancements, and cleanups (prep for new EH)\n  [libata] sata_mv: Minor cleanups and renaming, preparing for new EH \u0026 NCQ\n  libata-link: add PMP related ATA constants\n  libata-link: separate out ata_eh_handle_dev_fail()\n  pata_hpt3x3: fix DMA Kconfig option to actually have a hope of working\n  Add Hitachi HDS7250SASUN500G 0621KTAWSD to NCQ blacklist\n  pata_scc.c: Workaround for errata A308\n  libata: add FUJITSU MHV2080BH to NCQ blacklist\n  pata_hpt3x3: major reworking and testing\n  libata: clean up horkage handling\n  libata: quirk IOMEGA ZIP 250 ATAPI FLOPPY\n  libata: simplify PCI legacy SFF host handling\n  pata_mpc52xx: suspend/resume support\n  sata_promise: SATA hotplug support, take 2\n  pata_sis: FIFO whack\n  ...\n"
    },
    {
      "commit": "e1bd2ac5a6b7a8b625e40c9e9f8b6dea4cf22f85",
      "tree": "9366e9fb481da2c7195ca3f2bafeffebbf001363",
      "parents": [
        "0b9062f6b57a87f22309c6b920a51aaa66ce2a13",
        "15028aad00ddf241581fbe74a02ec89cbb28d35d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:31:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:31:22 2007 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (183 commits)\n  [TG3]: Update version to 3.78.\n  [TG3]: Add missing NVRAM strapping.\n  [TG3]: Enable auto MDI.\n  [TG3]: Fix the polarity bit.\n  [TG3]: Fix irq_sync race condition.\n  [NET_SCHED]: ematch: module autoloading\n  [TCP]: tcp probe wraparound handling and other changes\n  [RTNETLINK]: rtnl_link: allow specifying initial device address\n  [RTNETLINK]: rtnl_link API simplification\n  [VLAN]: Fix MAC address handling\n  [ETH]: Validate address in eth_mac_addr\n  [NET]: Fix races in net_rx_action vs netpoll.\n  [AF_UNIX]: Rewrite garbage collector, fixes race.\n  [NETFILTER]: {ip, nf}_conntrack_sctp: fix remotely triggerable NULL ptr dereference (CVE-2007-2876)\n  [NET]: Make all initialized struct seq_operations const.\n  [UDP]: Fix length check.\n  [IPV6]: Remove unneeded pointer idev from addrconf_cleanup().\n  [DECNET]: Another unnecessary net/tcp.h inclusion in net/dn.h\n  [IPV6]: Make IPV6_{RECV,2292}RTHDR boolean options.\n  [IPV6]: Do not send RH0 anymore.\n  ...\n\nFixed up trivial conflict in Documentation/feature-removal-schedule.txt\nmanually.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca9ced7f6798868f9d2c81a59b49f8c2136685d8",
      "tree": "37c3e54881b39e01ff4208d0bc0f977079ac2305",
      "parents": [
        "feb47225525a4194e7f6db5e745265793626ceb0",
        "83f53220f8313f097cdf181928be13bafbb697ea",
        "89bba43514d06478eb27e3fa9099a8ae7dee5589",
        "51198ea9478b6e10759ab07cd0b9917663c8df7a",
        "eab03b3f6609518a80eae4d1f5d78ff8f44e116a",
        "8a87a996eae3d25b0670a243f4829ea4aa9eb63d",
        "fcae8e098877b798c365fd9d807f86d5e2a2b324",
        "46c41e62a1feb4ab2e941f33f06bbf8feab2d2cf",
        "3c3e69cd4c667e6ce7939d83b274d48c57779479"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Jul 12 21:30:18 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 21:30:18 2007 +0100"
      },
      "message": "Merge branches \u0027at91\u0027, \u0027davinci\u0027, \u0027imx\u0027, \u0027iop\u0027, \u0027ixp\u0027, \u0027ks8695\u0027, \u0027misc\u0027, \u0027pxa\u0027 and \u0027s3c\u0027 into devel\n"
    },
    {
      "commit": "0b9062f6b57a87f22309c6b920a51aaa66ce2a13",
      "tree": "cbef02e5b1bfc1557a53f7d45c7d632fb1f91ae5",
      "parents": [
        "82afee684fe3badaf5ee3fc5b6fda687d558bfb5",
        "de61b542b822746d1498718c40f5dd740da49629"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:28:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:28:54 2007 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus:\n  [MIPS] Rename PC speaker code\n  [MIPS] Don\u0027t use genrtc.\n  [MIPS] Remove unused time.c for swarm\n  [MIPS] Sparse: Use NULL for pointer\n  [MIPS] Fix a sparse warning in arch/mips/pci/pci.c\n  [MIPS] SMTC: Interrupt mask backstop hack\n  [MIPS] separate platform_device registration for VR41xx RTC\n  [MIPS] Separate platform_device registration for VR41xx GPIO\n  [MIPS] MIPSsim: Fix build.\n  [MIPS] separate platform_device registration for VR41xx serial interface\n  [MIPS] Include cacheflush.h in uncache.c\n  [MIPS] Cleanup tlbdebug.h\n  [MIPS] Change names of local variables to silence sparse (part 2)\n  [MIPS] Workaround for a sparse warning in include/asm-mips/io.h\n  [MIPS] RM: Use only phyiscal address for 82596 and 53c710\n  [MIPS] Hydrogen3: Remove remaining bits of code.\n  [MIPS] DEC: Fix modpost warning.\n  Revert \"[MIPS] DEC: Fix modpost warning.\"\n  [MIPS] Fix resume for 64K page size on R4000 class processors.\n"
    },
    {
      "commit": "82afee684fe3badaf5ee3fc5b6fda687d558bfb5",
      "tree": "295abb35451a7eb1e46d6066e536e23d1a75668b",
      "parents": [
        "068345f4a873e8b0b511e8f94a595a20e176eeff",
        "f4d640c9be1979a603ed017e1e03a16ba3a4d7a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:25:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:25:24 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (30 commits)\n  Blackfin serial driver: supporting BF548-EZKIT serial port\n  Video Console: Blackfin doesnt support VGA console\n  Blackfin arch: Add peripheral io API to gpio header file\n  Blackfin arch: set up gpio interrupt IRQ_PJ9 for BF54x ATAPI PATA driver\n  Blackfin arch: add missing CONFIG_LARGE_ALLOCS when upstream merging\n  Blackfin arch: as pointed out by Robert P. J. Day, update the CPU_FREQ name to match current Kconfig\n  Blackfin arch: extract the entry point from the linked kernel\n  Blackfin arch: clean up some coding style issues\n  Blackfin arch: combine the common code of free_initrd_mem and free_initmem\n  Blackfin arch: Add Support for Peripheral PortMux and resouce allocation\n  Blackfin arch: use PAGE_SIZE when doing aligns rather than hardcoded values\n  Blackfin arch: fix bug set dma_address properly in dma_map_sg\n  Blackfin arch: Disable CACHELINE_ALIGNED_L1 for BF54x by default\n  Blackfin arch: Port the dm9000 driver to Blackfin by using the correct low-level io routines\n  Blackfin arch: There is no CDPRIO Bit in the EBIU_AMGCTL Register of BF54x arch\n  Blackfin arch: scrub dead code\n  Blackfin arch: Fix Warning add some defines in BF54x header file\n  Blackfin arch: add BF54x missing GPIO access functions\n  Blackfin arch: Some memory and code optimizations - Fix SYS_IRQS\n  Blackfin arch: Enable BF54x PIN/GPIO interrupts\n  ...\n"
    },
    {
      "commit": "068345f4a873e8b0b511e8f94a595a20e176eeff",
      "tree": "f67503164f017b45ab425827d71fb7d23920a519",
      "parents": [
        "c39736823232bc3ca113c8228fa852c09fba300e",
        "0a85e9a271a754e352af8a8b625025017fd97449"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:25:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:25:00 2007 -0700"
      },
      "message": "Merge branch \u0027i2c-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6\n\n* \u0027i2c-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6: (26 commits)\n  i2c-rpx: Remove\n  i2c-mpc: work around missing-9th-clock-pulse bug\n  i2c: New PMC MSP71xx TWI bus driver\n  i2c-savage4: Delete many unused defines\n  i2c/tsl2550: Speed up initialization\n  i2c: New bus driver for the TAOS evaluation modules\n  i2c-i801: Use the internal 32-byte buffer on ICH4+\n  i2c-i801: Various cleanups\n  i2c: Add support for the TSL2550\n  i2c-pxa: Support new-style I2C drivers\n  i2c-gpio: Make some internal functions static\n  i2c-gpio: Add support for new-style clients\n  i2c-iop3xx: Switch to static adapter numbering\n  i2c-sis5595: Resolve resource conflict with sis5595\n  matroxfb: Clean-up i2c header inclusions\n  i2c-nforce2: Add support for SMBus block transactions\n  i2c-mpc: Use i2c_add_numbered_adapter\n  i2c-mv64xxx: Use i2c_add_numbered_adapter\n  i2c-piix4: Add support for the ATI SB700\n  i2c: New DS1682 chip driver\n  ...\n"
    },
    {
      "commit": "5628221caf88e2a052782b042e12da7cd34111b0",
      "tree": "b4dbee3be1aa2b39e3d4c6f384b28d07740465fd",
      "parents": [
        "1fd5e589d8c7d3cd42ddd39358338766cfcedec8"
      ],
      "author": {
        "name": "Daniel Drake",
        "email": "dsd@gentoo.org",
        "time": "Tue Jul 10 19:32:10 2007 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jul 12 16:07:26 2007 -0400"
      },
      "message": "[PATCH] mac80211: ERP IE handling improvements\n\nThe \"protection needed\" flag is currently parsed out of the ERP IE in\nbeacons. This patch allows the ERP IE to be available at assocation time\nand causes the appropriate actions to be performed earlier.\n\nIt is slightly complicated by the fact that most APs don\u0027t include the\nERP IE in association responses. To work around this, we store ERP\nvalues in the ieee80211_sta_bss structure.\n\nAlso added some WLAN_ERP defines for use by upcoming patches.\n\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4480f15ca62a595248d6d8e2b3e75052113cde59",
      "tree": "fec2e3536bbe508a6a5de4a1e14d0c0ac904836f",
      "parents": [
        "5558235c6bade6662e6f257a35f2dfdc8a742147"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jul 10 19:32:10 2007 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jul 12 16:07:26 2007 -0400"
      },
      "message": "[PATCH] mac80211: clarify some mac80211 things\n\nThe semantics of not having an add_interface callback are not well\ndefined, this callback is required because otherwise you cannot obtain\nthe requested MAC address of the device. Change the documentation to\nreflect this, add a note about having no MAC address at all, add a\nwarning that mac_addr in struct ieee80211_if_init_conf can be NULL and\nfinally verify that a few callbacks are assigned by way of BUG_ON()\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c59304b5e07128816347fe3996d7952561f60529",
      "tree": "ed36d08fb9503534fa28e4a04b16cf72196a2d39",
      "parents": [
        "7f8c05982865a32ee001b79ee0bd469f55ac8aba"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jul 10 19:32:08 2007 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jul 12 16:07:25 2007 -0400"
      },
      "message": "[PATCH] mac80211: remove ieee80211_set_aid_for_sta\n\nRemove ieee80211_set_aid_for_sta and associated code.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "179f831bc33104d14deb54a52b7a8b43433f8ccc",
      "tree": "8834c628a493fbd4aff1e09dc77b334154c6a050",
      "parents": [
        "08d1f2155cd5b21bb3848f46d9747afb1ccd249d"
      ],
      "author": {
        "name": "Andy Green",
        "email": "andy@warmcat.com",
        "time": "Tue Jul 10 19:29:38 2007 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jul 12 16:07:24 2007 -0400"
      },
      "message": "[PATCH] cfg80211: Radiotap parser\n\nGeneric code to walk through the fields in a radiotap header, accounting\nfor nasties like extended \"field present\" bitfields and alignment rules\n\nSigned-off-by: Andy Green \u003candy@warmcat.com\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c39736823232bc3ca113c8228fa852c09fba300e",
      "tree": "94fe2f8b27879cee904b09d1effb91ccc3ce6e0a",
      "parents": [
        "91a6c462b02d8dc02dbe95e5a407d78078a38d01"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jul 11 12:18:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 10:55:56 2007 -0700"
      },
      "message": "Remove old i386 setup code\n\nThis removes the old i386 setup code.  This is done as a separate patch\nto avoid breaking git bisect as some of the i386 code was also used by\nthe old x86-64 code.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8afd2af88921c2cb1c9540cecd0714da7ae4fcd0",
      "tree": "162a4de59d8dab371f5568bf37ea7de7af59115f",
      "parents": [
        "77e1dd654bc24182a7ad34f415abd488ae7af6eb"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jul 11 12:18:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 10:55:54 2007 -0700"
      },
      "message": "x86-64: add symbolic constants for the boot segment selectors\n\nAdd symbolic constants for the segment selectors/GDT slots used by\nthe setup code, for consistency with i386.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48c7ae674f03e56c78ff42c6796a36e90db67874",
      "tree": "ecca581aa246142ac4b9ea4f3960cc7817bb3c48",
      "parents": [
        "9c25d134b3735a4b197e108b4c7d6bbec1a275e8"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jul 11 12:18:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 10:55:54 2007 -0700"
      },
      "message": "Make struct boot_params a real structure, and remove obsolete fields\n\nMake struct boot_params a real structure, and remove the handling of\nsome obsolete fields, in particular hd*_info, which was only used by\nthe ST-506 driver, and likely to be wrong for that driver on any\nmodern BIOS.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c25d134b3735a4b197e108b4c7d6bbec1a275e8",
      "tree": "20c1bdca391c864cce126e3615c84d10d62852b6",
      "parents": [
        "85414b693ac037d709582a167a330db3a5d186d8"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jul 11 12:18:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 10:55:54 2007 -0700"
      },
      "message": "Make definitions for struct e820entry and struct e820map consistent\n\nMake definitions for struct e820entry and struct e820map\nconsistent between i386 and x86-64.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d67953f2bda8876045c24ae58841f27d9bb7572",
      "tree": "4f91c4037c6e8996cb3164f3f20489c471676f6c",
      "parents": [
        "e087db510cd96a75a614f6f6fcd5499ab21cb087"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jul 11 12:18:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 10:55:54 2007 -0700"
      },
      "message": "Use a new CPU feature word to cover features that are spread around\n\nSome Intel features are spread around in different CPUID leafs like 0x5,\n0x6 and 0xA.  Make this feature detection code common across i386 and\nx86_64.\n\nDisplay Intel Dynamic Acceleration feature in /proc/cpuinfo. This feature\nwill be enabled automatically by current acpi-cpufreq driver.\n\nRefer to Intel Software Developer\u0027s Manual for more details about the feature.\n\nThanks to hpa (H Peter Anvin) for the making the actual code detecting the\nscattered features data-driven.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e087db510cd96a75a614f6f6fcd5499ab21cb087",
      "tree": "70b6d536585355ff59f7635083f36eea71d6d27b",
      "parents": [
        "de32e04175efbc1ff5e0f509253d5dfc84f173b3"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jul 11 12:18:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 10:55:54 2007 -0700"
      },
      "message": "Clean up struct screen_info (\u003clinux/screen_info.h\u003e)\n\nstruct screen_info has unaligned members, it needs to be packed.\nIn the process, fix the naming of some of the members, which don\u0027t\nbelong in this structure but are part of it anyway.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec481536b15eb0520d8f0204b0294480050fe1f8",
      "tree": "3f959a26ca58477734ea1e4d5370b2d3a33a1680",
      "parents": [
        "f8c09377d754f35a135454181b869ab527cc0757"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jul 11 12:18:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 10:55:54 2007 -0700"
      },
      "message": "Unify the CPU features vectors between i386 and x86-64\n\nUnify the handling of the CPU features vectors between i386 and x86-64.\nThis also adopts the collapsing of features which are required at\ncompile-time into constant tests from x86-64 to i386.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8c09377d754f35a135454181b869ab527cc0757",
      "tree": "5df34647452887000d2b3cde92aa21907d3df87a",
      "parents": [
        "48dd643c3b02544994fa091573c2242441a7733f"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jul 11 12:18:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 10:55:54 2007 -0700"
      },
      "message": "include/asm-i386/boot.h: This is \u003casm/boot.h\u003e, not \u003clinux/boot.h\u003e\n\ninclude/asm-i386/boot.h incorrectly has the multiple include guards\nas _LINUX_BOOT_H instead of _ASM_BOOT_H.  Fix.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fdc1f93847ea618e51f001805e022794d8bffff3",
      "tree": "9f9d41db803bcbe60b4d11f09404232fc7c8b7b6",
      "parents": [
        "1f2c6d6b0c553e44273aaee24820c67ebfbbfebe"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 12 17:41:21 2007 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 12 17:41:21 2007 +0100"
      },
      "message": "[MIPS] Don\u0027t use genrtc.\n\nThe only pseudo-legitimate MIPS user of genrtc was a systems that doesn\u0027t\nhave an RTC in hardware at all.  At this point faking one is a little\npointless ...\n"
    },
    {
      "commit": "0db34215c7e0ef618e7b29fbf271194ca5434f8e",
      "tree": "261d8cd77fad2d661157ee5e5bde8e3fdc8c96b9",
      "parents": [
        "bd0765098bf22eb8b1319f649a4c3301b40ec04c"
      ],
      "author": {
        "name": "Kevin D. Kissell",
        "email": "kevink@mips.com",
        "time": "Thu Jul 12 16:21:08 2007 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 12 17:41:17 2007 +0100"
      },
      "message": "[MIPS] SMTC: Interrupt mask backstop hack\n\nTo support multiple TC microthreads acting as \"CPUs\" within a VPE,\nVPE-wide interrupt mask bits must be specially manipulated during\ninterrupt handling. To support legacy drivers and interrupt controller\nmanagement code, SMTC has a \"backstop\" to track and if necessary restore\nthe interrupt mask. This has some performance impact on interrupt service\noverhead. Disable it only if you know what you are doing.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "44173fb2e83183b585e137e6fee8ba32460f5645",
      "tree": "afe1f22e9695eabedf76b3c5a24fea2cb3d2493e",
      "parents": [
        "a74b4605181595c633ff4cfd44949886b0918172"
      ],
      "author": {
        "name": "Yoichi Yuasa",
        "email": "yoichi_yuasa@tripeaks.co.jp",
        "time": "Thu May 10 22:21:35 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 12 17:41:15 2007 +0100"
      },
      "message": "[MIPS] Separate platform_device registration for VR41xx GPIO\n\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "891649409edbed528728b4a104d29e43e9d7473a",
      "tree": "837091ee652d4b6905736c8d12cdc74397d6d1b7",
      "parents": [
        "8c41286edffef0d6e7fb770b178275c8beb24055"
      ],
      "author": {
        "name": "Yoichi Yuasa",
        "email": "yoichi_yuasa@tripeaks.co.jp",
        "time": "Wed May 09 00:03:02 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 12 17:41:13 2007 +0100"
      },
      "message": "[MIPS] separate platform_device registration for VR41xx serial interface\n\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "40df3831f9b2fa386f55b580f294ea4f686704be",
      "tree": "6c114801907c3182df679961d8591d6333571604",
      "parents": [
        "87d43dd48d6e68095be85c4e5f991fd7c89c052e"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Thu Jul 12 00:51:00 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 12 17:41:11 2007 +0100"
      },
      "message": "[MIPS] Cleanup tlbdebug.h\n\nAlso include tlbdebug.h in dump_tlb.c and r3k_dump_tlb.c.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "87d43dd48d6e68095be85c4e5f991fd7c89c052e",
      "tree": "bf99b9d1ed24f5f40aa995798418bf11a374975a",
      "parents": [
        "c0cf500145b4154adcbc55afc1a63db24cee84a2"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Wed Jul 11 23:30:40 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 12 17:41:10 2007 +0100"
      },
      "message": "[MIPS] Change names of local variables to silence sparse (part 2)\n\nThis patch is an workaround for these sparse warnings:\n\ninclude2/asm/mmu_context.h:172:2: warning: symbol \u0027flags\u0027 shadows an earlier one\ninclude2/asm/mmu_context.h:133:16: originally declared here\ninclude2/asm/mmu_context.h:232:2: warning: symbol \u0027flags\u0027 shadows an earlier one\ninclude2/asm/mmu_context.h:203:16: originally declared here\ninclude2/asm/mmu_context.h:277:3: warning: symbol \u0027flags\u0027 shadows an earlier one\ninclude2/asm/mmu_context.h:250:16: originally declared here\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "c0cf500145b4154adcbc55afc1a63db24cee84a2",
      "tree": "ab5ca7ffff7c809c8d8cf35e587de0bfabaa7162",
      "parents": [
        "9815778ae016004c33ce267a00b7d567192ef6e7"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Wed Jul 11 23:12:00 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 12 17:41:10 2007 +0100"
      },
      "message": "[MIPS] Workaround for a sparse warning in include/asm-mips/io.h\n\nCKSEG1ADDR() returns unsigned int value on 32bit kernel.  Cast it to\nunsigned long to get rid of this warning:\n\ninclude2/asm/io.h:215:12: warning: cast adds address space to expression (\u003casn:2\u003e)\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "d1cbbd6b413510c6512f4f80ffd48db1a8dd554a",
      "tree": "fb3f908530cf2c4957aa45256214ed7d59557820",
      "parents": [
        "f884b1cf578e079f01682514ae1ae64c74586602"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 11 11:29:39 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 16:20:52 2007 +0100"
      },
      "message": "[ARM] 4474/1: Do not check the PSR_F_BIT in valid_user_regs\n\nWhen running Linux in non-secure mode (on ARM1176 for example),\ndepending on the CP15 secure configuration register, the CPSR.F bit\n(6) might only be modified from the secure mode. However, the\nvalid_user_regs() function checks for this bit being cleared. With\ncommit a6c61e9d, a SIGSEGV is forced in handle_signal() if the user\nregisters are not considered valid.\n\nThe patch also ensures that the CPSR.A bit is cleared and the USR mode\nis set if the CPU does not support the 26bit user mode.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "f884b1cf578e079f01682514ae1ae64c74586602",
      "tree": "9c940dc533c3316f7601f032da88ce49c1dfa6bb",
      "parents": [
        "909d6c6c80311f800aee338e5fa528818b115951"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jul 12 16:10:22 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 16:20:15 2007 +0100"
      },
      "message": "[ARM] 4473/2:  Take the HWCAP definitions out of the elf.h file\n\nThe patch moves the HWCAP definitions and the extern elf_hwcap\ndeclaration to the hwcap.h header file.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "f53f066c25036210036730d64c876ea586114425",
      "tree": "e680deb53ff12ec09f5c64421a3f13eecb7aed41",
      "parents": [
        "cd49104d99b56383a3b1fdce2f31018197093c31"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "eric.y.miao@gmail.com",
        "time": "Fri Jun 22 05:40:17 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 14:28:16 2007 +0100"
      },
      "message": "[ARM] 4451/1: pxa: make dma.c generic and remove cpu specific dma code\n\nSince the number of dma channels varies between pxa25x and pxa27x, it\nintroduces some specific code in dma.c. This patch moves the specific\ncode to pxa25x.c and pxa27x.c and makes dma.c more generic.\n\n1. add pxa_init_dma() for dma initialization, the number of channels\n   are passed in by the argument\n\n2. add a \"prio\" field to the \"struct pxa_dma_channel\" for the channel\n   priority, and is initialized in pxa_init_dma()\n\n3. use a general priority comparison with the channels \"prio\" field so\n   to remove the processor specific pxa_for_each_dma_prio macro,  this\n   is not lightning fast as the original one,  but it is acceptable as\n   it happens when requesting dma, which is usually not so performance\n   critical\n\nSigned-off-by: eric miao \u003ceric.miao@marvell.com\u003e\nAcked-by: Nicolas Pitre \u003cnico@cam.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "8118d124949ed8ff1a450e0c0d13cfab8c2ff7aa",
      "tree": "1fc7460f5e16ed40cc857a015810e37c79364e21",
      "parents": [
        "4a3dcd35c82a2a25b2832502290e1a3f1571e9ef"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "eric.y.miao@gmail.com",
        "time": "Wed Jun 06 06:49:59 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 14:28:14 2007 +0100"
      },
      "message": "[ARM] 4440/1: PXA: enable the checking of ICIP2 for IRQs\n\nICIP2 is not examined during IRQ entrance, this patch add the\nchecking if the processor is PXA27x or later, with CoreG bits\nin CPUID (Core Generation) \u003e 1\n\nSigned-off-by: eric miao \u003ceric.miao@marvell.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "c08b7b3ef6bf489ddabadc03e050f3db2ea44b5d",
      "tree": "7933a8126ed112ae1cb7c40de14904d01c2fde86",
      "parents": [
        "486c955118dbbb0f13dc4d40cc5dac2b23f82676"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "eric.y.miao@gmail.com",
        "time": "Wed Jun 06 06:32:38 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 14:28:10 2007 +0100"
      },
      "message": "[ARM] 4435/1: PXA: remove PXA_INTERNAL_IRQS\n\n1. define PXA_GPIO_IRQ_BASE to be right after the internal IRQs,\n   and define PXA_GPIO_IRQ_NUM to be 128 for all PXA2xx variants\n\n2. make the code specific to the high IRQ numbers (32..64) to be\n   PXA27x specific\n\n3. add a function pxa_init_irq_high() to initialize the internal\n   high IRQ chip, the invoke of this function could be moved to\n   PXA27x specific initialization code\n\nSigned-off-by: eric miao \u003ceric.miao@marvell.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "486c955118dbbb0f13dc4d40cc5dac2b23f82676",
      "tree": "a38ba53eb3d924e34c312ec6e2eaa1d491a82446",
      "parents": [
        "88dfe98c688e1700a4a9f73f8b7d570f4f52170d"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "eric.y.miao@gmail.com",
        "time": "Wed Jun 06 06:22:20 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 14:28:09 2007 +0100"
      },
      "message": "[ARM] 4434/1: PXA: remove PXA_IRQ_SKIP\n\n1. PXA_IRQ_SKIP is defined to be 7 on PXA25x so that the first IRQ\n   starts from zero. This makes IRQ numbering inconsistent between\n   PXA25x and PXA27x. Remove this macro so that the same IRQ_XXXXX\n   definition has the same value on both PXA25x and PXA27x.\n\n2. make IRQ_SSP3..IRQ_PWRI2C valid only if PXA27x is defined, this\n   avoids unintentional use of these macros on PXA25x\n\nSigned-off-by: eric miao \u003ceric.miao@marvell.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "b23170c01f6e4ea043df7cd9486c2488e01f3d60",
      "tree": "3357533ac2d0a889628f9290e045af920e051974",
      "parents": [
        "7a2b94bc39915041304578188441f0f21aa5532a"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Tue May 15 10:26:49 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 14:28:04 2007 +0100"
      },
      "message": "[ARM] pxa: introduce cpu_is_pxaXXX macros\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "7a2b94bc39915041304578188441f0f21aa5532a",
      "tree": "50937d7cb453dab5c1b0de6e96031f219fc8c1cc",
      "parents": [
        "f4b6a0a401f2cec5e6199e805ed42f30d8c04e94"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Wed May 16 15:44:37 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 14:27:56 2007 +0100"
      },
      "message": "[ARM] pxa: remove MMC register defines from pxa-regs.h\n\npxamci.h redefines the MMC registers differently so they can be used\nwith ioremap.  Remove the incompatible definitions from pxa-regs.h.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "f62c3f2c35874713ebbb6b6a4b9d9c6caaed4f14",
      "tree": "cddad98c3e62817e4899e5349ea7b8566f4f5e04",
      "parents": [
        "7dcca30a32aadb0520417521b0c44f42d09fe05c"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Tue May 15 11:03:24 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 14:27:53 2007 +0100"
      },
      "message": "[ARM] pxa: remove useless pxa_pm_finish() function\n\npxa_pm_finish() does nothing but return zero.  The core code\ndoes nothing with this return value, and will not try to call\nthe finish method in the pm_ops structure if it is NULL.\n\nTherefore, we can remove this useless function.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "b9cdad74883a797952de52464d118d685cafc05a",
      "tree": "b843038e60482c01854ec14b57502bb3833143d0",
      "parents": [
        "7edcb9abb594a8f3b4ca756e03d01c870aeae127"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Jul 12 14:12:31 2007 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@hyperion.delvare",
        "time": "Thu Jul 12 14:12:31 2007 +0200"
      },
      "message": "i2c: New bus driver for the TAOS evaluation modules\n\nThis is a new I2C bus driver for the TAOS evaluation modules. Developped\nand tested on the TAOS TSL2550 EVM.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "c29c22218b99dad95f7cd0281415a854aeee805c",
      "tree": "ff2af319e645bc69bc8bb9c58e9a466b1a3c4bee",
      "parents": [
        "5162b75b24963eebe62c4d4161d0fe0b337a313b"
      ],
      "author": {
        "name": "Henry Su",
        "email": "henry.su@amd.com",
        "time": "Thu Jul 12 14:12:29 2007 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@hyperion.delvare",
        "time": "Thu Jul 12 14:12:29 2007 +0200"
      },
      "message": "i2c-piix4: Add support for the ATI SB700\n\nAdd the SMBus device ID for ATI SB700.\n\nSigned-off-by: Henry Su \u003cHenry.su@amd.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "4b2643d7d9bdcd776749e17f73c168ddf02e93cb",
      "tree": "1642900ea1c196cc27d120f0af4de44fff30633e",
      "parents": [
        "ba7fbb723f50ab2607989a282af655fb0fab0492"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Jul 12 14:12:29 2007 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@hyperion.delvare",
        "time": "Thu Jul 12 14:12:29 2007 +0200"
      },
      "message": "i2c: Fix the i2c_smbus_read_i2c_block_data() prototype\n\nLet the drivers specify how many bytes they want to read with\ni2c_smbus_read_i2c_block_data(). So far, the block count was\nhard-coded to I2C_SMBUS_BLOCK_MAX (32), which did not make much sense.\nMany driver authors complained about this before, and I believe it\u0027s\nabout time to fix it. Right now, authors have to do technically stupid\nthings, such as individual byte reads or full-fledged I2C messaging,\nto work around the problem. We do not want to encourage that.\n\nI even found that some bus drivers (e.g. i2c-amd8111) already\nimplemented I2C block read the \"right\" way, that is, they didn\u0027t\nfollow the old, broken standard. The fact that it was never noticed\nbefore just shows how little i2c_smbus_read_i2c_block_data() was used,\nwhich isn\u0027t that surprising given how broken its prototype was so far.\n\nThere are some obvious compatiblity considerations:\n* This changes the i2c_smbus_read_i2c_block_data() prototype. Users\n  outside the kernel tree will notice at compilation time, and will\n  have to update their code.\n* User-space has access to i2c_smbus_xfer() directly using i2c-dev, so\n  the changed expectations would affect tools such as i2cdump. In order\n  to preserve binary compatibility, we give I2C_SMBUS_I2C_BLOCK_DATA\n  a new numeric value, and define I2C_SMBUS_I2C_BLOCK_BROKEN with the\n  old numeric value. When i2c-dev receives a transaction with the\n  old value, it can convert it to the new format on the fly.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "d75d53cd571c02990d56e72f615ab11e943772f9",
      "tree": "7a4e8cbece9b18829e5cb830134d717cfce38e18",
      "parents": [
        "d64f73be1b59b9556de0a8fbd4f1a003c6a45a5c"
      ],
      "author": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Jul 12 14:12:28 2007 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@hyperion.delvare",
        "time": "Thu Jul 12 14:12:28 2007 +0200"
      },
      "message": "i2c: Fix sparse warning in i2c.h\n\nKill a sparse warning by un-nesting two container_of() calls.\n    \nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "d64f73be1b59b9556de0a8fbd4f1a003c6a45a5c",
      "tree": "9a8fca55b1fab9ac3d0781294553feaeeba37473",
      "parents": [
        "4eb6bf6bfb580afaf1e1a1d30cba17a078530cf4"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Thu Jul 12 14:12:28 2007 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@hyperion.delvare",
        "time": "Thu Jul 12 14:12:28 2007 +0200"
      },
      "message": "i2c: Add kernel documentation\n\nGenerate I2C kerneldoc; fix various glitches and add \"context\" sections to\nthat documentation.  Most I2C and SMBus functions still have no kerneldoc.\n\nLet me suggest providing kerneldoc for all the i2c_smbus_*() functions as\na small and mostly self-contained project for anyone so inclined.  :)\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "909d6c6c80311f800aee338e5fa528818b115951",
      "tree": "d4934d8ea67ade7c78e02e4cebd0fc934d3698b1",
      "parents": [
        "9d20fdd58e74d4d26dc5216efaaa0f800c23dd3a"
      ],
      "author": {
        "name": "George G. Davis",
        "email": "gdavis@mvista.com",
        "time": "Tue Jun 26 01:38:27 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 11:13:35 2007 +0100"
      },
      "message": "[ARM] 4453/1: Fully Decode ARM instruction set state in show_regs() tombstone\n\nThe ARM show_regs() tombstone only partially decodes which ARM ISA was\nexecuting at the time a fault occurred displaying either \"(T)\" for the\nThumb case or nothing at all for other cases.  This patch therefore\nexplicitly identifies which state the processor is in at the time of\na fault: ARM, Thumb, Jazelle or JazelleEE.\n\nSigned-off-by: George G. Davis \u003cgdavis@mvista.com\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "8a87a996eae3d25b0670a243f4829ea4aa9eb63d",
      "tree": "d9be23b6bc2b061c57e066848059fda3e09f8d01",
      "parents": [
        "7dcca30a32aadb0520417521b0c44f42d09fe05c"
      ],
      "author": {
        "name": "Andrew Victor",
        "email": "andrew@sanpeople.com",
        "time": "Mon May 14 14:30:15 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 11:12:34 2007 +0100"
      },
      "message": "[ARM] 4377/1: KS8695: GPIO driver\n\nDriver to control the GPIO pins on the KS8695 processor.\nThe driver natively supports the Generic GPIO interface.\n\nSigned-off-by: Andrew Victor \u003candrew@sanpeople.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "dcdeeb21c010e9b5cb2e91f865cd5bebb65bc31f",
      "tree": "96a48f28d44a1d7a23fb16bf95afb3d4aef74983",
      "parents": [
        "46918bd13b887e8f0ae2987e690bc2af9c6c08a4"
      ],
      "author": {
        "name": "Imre Kaloz",
        "email": "kaloz@openwrt.org",
        "time": "Sat Jun 02 15:47:51 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 11:12:15 2007 +0100"
      },
      "message": "[ARM] 4426/2: Netgear WG302 v2 and WAG302 v2 support\n\nThis patch provides support for the Netgear WG302 v2 and WAG302 v2 AccessPoint series.\n\nThis patch relies on the patch \"Gateway 7001 series support\" minimally, as they only have UART2 connected.\n\nUpdated to stay below the 80 char limit in uncompress.h\n\nSigned-off-by: Imre Kaloz \u003ckaloz@openwrt.org\u003e\nSigned-off-by: Deepak Saxena \u003cdsaxena@mvista.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "46918bd13b887e8f0ae2987e690bc2af9c6c08a4",
      "tree": "14d0969bbd89c94848fb0f59249310746d06acda",
      "parents": [
        "4ad48b4bfa121a67ec04162d584afcfa75ed151a"
      ],
      "author": {
        "name": "Imre Kaloz",
        "email": "kaloz@openwrt.org",
        "time": "Sat Jun 02 15:44:08 2007 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jul 12 11:12:15 2007 +0100"
      },
      "message": "[ARM] 4425/2: Gateway 7001 series support\n\nThis patch provides support for the Gateway 7001 AccessPoint series.\n\nUpdated to stay below the 80 char limit in uncompress.h\n\nSigned-off-by: Imre Kaloz \u003ckaloz@openwrt.org\u003e\nSigned-off-by: Deepak Saxena \u003cdsaxena@mvista.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    }
  ],
  "next": "4ad48b4bfa121a67ec04162d584afcfa75ed151a"
}
