)]}'
{
  "log": [
    {
      "commit": "01414802054c382072b6cb9a1bdc6e243c74b2d5",
      "tree": "f09b05eb9fff16a69d83ec28653992d1bae8d74c",
      "parents": [
        "bb8a10bbd10a45db0eb45bac520489bdbc0917ef"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Aug 17 02:31:15 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 17 02:31:15 2010 -0700"
      },
      "message": "ethtool: Provide a default implementation of ethtool_ops::get_drvinfo\n\nThe driver name and bus address for a net_device can normally be found\nthrough the driver model now.  Instead of requiring drivers to provide\nthis information redundantly through the ethtool_ops::get_drvinfo\noperation, use the driver model to do so if the driver does not define\nthe operation.  Since ETHTOOL_GDRVINFO no longer requires the driver\nto implement any operations, do not require net_device::ethtool_ops to\nbe set either.\n\nRemove implementations of get_drvinfo and ethtool_ops that provide\nonly this information.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e78483c5aeb0d7fbb0e365802145f1045e62957e",
      "tree": "cc1c4733486f562b26ab812ce38ff8026da70007",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51",
        "b20d02e37eeabf34b40c3995c2dbb0af53da3c57",
        "20802224298ce9dfd99a7e26b675fc0c8ae26cac"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 09:33:25 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 10:09:04 2010 +0200"
      },
      "message": "Merge firewire branches to be released post v2.6.35\n\nConflicts:\n\tdrivers/firewire/core-card.c\n\tdrivers/firewire/core-cdev.c\n\nand forgotten #include \u003clinux/time.h\u003e in drivers/firewire/ohci.c\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "20802224298ce9dfd99a7e26b675fc0c8ae26cac",
      "tree": "a00ead28ffc6b5032f1d83a22f7503fdc2c1f0ec",
      "parents": [
        "872e330e38806d835bd6c311c93ab998e2fb9058"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Aug 01 12:23:14 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 08:59:52 2010 +0200"
      },
      "message": "firewire: core: add forgotten dummy driver methods, remove unused ones\n\nThere is an at least theoretic race condition in which .start_iso etc.\ncould still be called between when the dummy driver is bound to the card\nand when the children devices are being shut down.  Add dummy_start_iso\nand friends.\n\nOn the other hand, .enable, .set_config_rom, .read_csr, write_csr do not\nneed to be implemented by the dummy driver, as commented.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "872e330e38806d835bd6c311c93ab998e2fb9058",
      "tree": "92497ce79b1157761b1aebdb63b8d74f68d42c15",
      "parents": [
        "ae2a97661482c1d0f1aa41b837da95054d0e9a1b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 18:19:22 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:09:18 2010 +0200"
      },
      "message": "firewire: add isochronous multichannel reception\n\nThis adds the DMA context programming and userspace ABI for multichannel\nreception, i.e. for listening on multiple channel numbers by means of a\nsingle DMA context.\n\nThe use case is reception of more streams than there are IR DMA units\noffered by the link layer.  This is already implemented by the older\nohci1394 + ieee1394 + raw1394 stack.  And as discussed recently on\nlinux1394-devel, this feature is occasionally used in practice.\n\nThe big drawbacks of this mode are that buffer layout and interrupt\ngeneration necessarily differ from single-channel reception:  Headers\nand trailers are not stripped from packets, packets are not aligned with\nbuffer chunks, interrupts are per buffer chunk, not per packet.\n\nThese drawbacks also cause a rather hefty code footprint to support this\nrarely used OHCI-1394 feature.  (367 lines added, among them 94 lines of\nadded userspace ABI documentation.)\n\nThis implementation enforces that a multichannel reception context may\nonly listen to channels to which no single-channel context on the same\nlink layer is presently listening to.  OHCI-1394 would allow to overlay\nsingle-channel contexts by the multi-channel context, but this would be\na departure from the present first-come-first-served policy of IR\ncontext creation.\n\nThe implementation is heavily based on an earlier one by Jay Fenlason.\nThanks Jay.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ae2a97661482c1d0f1aa41b837da95054d0e9a1b",
      "tree": "d80b34cc5895c18af5e092ff7c56c1cefb0e1983",
      "parents": [
        "69e61d0c07fa28a05f699723a88d49e0014019b6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 09:31:56 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:09:18 2010 +0200"
      },
      "message": "firewire: core: small clarifications in core-cdev\n\nMake a note on the seemingly unused linux/sched.h.\nRename an irritatingly named variable.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "69e61d0c07fa28a05f699723a88d49e0014019b6",
      "tree": "dc17f40f9765506b511b31a2a4afddc2f2c938c4",
      "parents": [
        "e5b06c077c592e7e1623641520787a3da7b7c6bf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 28 23:49:45 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: core: remove unused code\n\nioctl_create_iso_context enforces ctx-\u003eheader_size \u003e\u003d 4.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e5b06c077c592e7e1623641520787a3da7b7c6bf",
      "tree": "92669edec5be2e06ed1b971e611a7683bb33ab75",
      "parents": [
        "071595ebdc66d70219e2d1ce746016f64b2b19e7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 28 15:50:00 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: ohci: release channel in error path\n\nfirewire-ohci keeps book of which isochronous channels are occupied by\nIR DMA contexts, so that there cannot be more than one context listening\nto a certain channel.\n\nIf IR context creation failed due to an out-of-memory condition, this\nbookkeeping leaked a channel.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "071595ebdc66d70219e2d1ce746016f64b2b19e7",
      "tree": "3083b0de17a6d0633420ffda1dfa04a0b4b880b2",
      "parents": [
        "8e2b2b46ea4ca5ef790dddf78b360ed736a62d7c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 13:20:33 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: ohci: use memory barriers to order descriptor updates\n\nWhen we append to a DMA program, we need to ensure that the order in\nwhich initialization of the new descriptors and update of the\nbranch_address of the old tail descriptor, as seen by the PCI device,\nhappen as intended.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "9f6d3c4b76314c40c866a935d78c80fd284768bd",
      "tree": "ccb994e8ebe7a36b8bed804c79ce9f117455f041",
      "parents": [
        "aed69d2b79bb5af008526998e466da6d0eac7ae5"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:58:05 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "tools/firewire: add userspace front-end of nosy\n\nThis adds nosy-dump, the userspace part of nosy, the IEEE 1394 traffic\nsniffer for Texas Instruments PCILynx/ PCILynx2 based cards.  Author is\nKristian Høgsberg.\n\nThe files added here are taken from\ngit://anongit.freedesktop.org/~krh/nosy commit ee29be97 (2009-11-10)\nwith the following changes by Stefan Richter:\n  - Parts pertaining to the kernel module removed from Makefile.\n  - dist target removed from the Makefile.\n  - Mentioned nosy-dump in the Kconfig help to nosy\u0027s kernel component.\n  - Add copyright notice to nosy-dump.c.  This is a duplicate of the\n    respective notice in the kernel component nosy.c except for a time\n    span of 2002 - 2006, according to Kristian\u0027s git log.\n\n\"git shortlog decode-fcp.c list.h nosy-dump.[ch]\" from nosy\u0027s git\nrepository:\n\nJonathan Woithe (1):\n      Save logs on Ctrl-C\n\nKristian Høgsberg (11):\n      Pull over nosy from mercurial repo.\n      Remove some fields from default view, add logging feature.\n      Use infinite time out for poll(), mark more detail fields.\n      Fix byte ordering macro.\n      Add decoding of iso data and lock packets.\n      Add flag to indicate data length field.\n      Add cycle start packet decoding, add --iso and --cycle-start flags.\n      Distinguish between phy-packets and 0-length iso data.\n      Fix transaction and stats view.\n      Add simple AV/C decoder.\n      Don\u0027t break down on big payloads.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Kristian Høgsberg \u003ckrh@bitplanet.net\u003e\n"
    },
    {
      "commit": "7429b17d30a19fd52a0c07de9d3959746d321e15",
      "tree": "2dc1e07547893ed804fd06b84eb24a86a38cc571",
      "parents": [
        "fd8c8d46ca9402c15383d2cf0bc3ee7740de3b62"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: use generic printk macros\n\nReplace home-grown printk wrapper macros by ones from kernel.h and\ndevice.h.\n\nAlso raise the log level in set_phy_reg() from debug to error because\nthese are really error conditions.  Could even be WARN_ON.  Lower the\nlog level in the device probe and driver shutdown from notice to info.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "fd8c8d46ca9402c15383d2cf0bc3ee7740de3b62",
      "tree": "66a33db3ea837f2fb6c66e077a9b5fae7009c3ba",
      "parents": [
        "c89db7b8bc88d8288dcfbe7a885b950d2560d564"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: endianess fixes and annotations\n\n1.)  The DMA programs (struct pcl) are PCI-endian \u003d little endian data\n(except for the 3rd quadlet in a PCL which the controller does not\ntouch).  Annotate them as such.\n\nFix all accesses of the PCL to work with big endian CPUs also.  Not\nactually tested, I only have a little endian PC to test with.  This\nincludes replacement of a bitfield struct pcl_status by open-coded\nshift and mask operations.\n\n2.)  The two __attribute__ ((packed)) at struct pcl are not really\nrequired since it consists of u32/__le32 only, i.e. there will be no\npadding with or without the attribute.\n\n3.)  The received IEEE 1394 data are byteswapped by the controller from\nIEEE 1394 endian \u003d big endian to PCI endian \u003d little endian because the\nPCL_BIGENDIAN control bit is set.  Therefore annotate the DMA buffer as\na __le32 array.\n\nFix the one access of the DMA buffer (the check of the transaction code\nof link packets) to work with big endian CPUs.  Also fix the two\naccesses of the client bounce buffer (the reading of packet length).\n\n4.)  Add a comment to the userspace ABI header that all of the data gets\nout as little endian data, except for the timestamp which is CPU endian.\n(We could make it little endian too, but why?  Vice versa, an ioctl\ncould be added to dump packet data in big endian byte order...)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c89db7b8bc88d8288dcfbe7a885b950d2560d564",
      "tree": "b6588c1c885f6219a55aff794681e39062408ad4",
      "parents": [
        "424d66cedae8bebb00fdb917fc8430f7b8a655cf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: annotate __user pointers and __iomem pointers\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "424d66cedae8bebb00fdb917fc8430f7b8a655cf",
      "tree": "cd232df29974be404978d47a2257c9422272d304",
      "parents": [
        "b6d9c125e6610591c04ca9045f641e35ce1a9226"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: fix device shutdown with active client\n\nFix race between nosy_open() and remove_card() by replacing the\nunprotected array of card pointers by a mutex-protected list of cards.\n\nMake card instances reference-counted and let each client hold a\nreference.\n\nNotify clients about card removal via POLLHUP in poll()\u0027s events\nbitmap; also let read() fail with errno\u003dENODEV if the card was removed\nand everything in the buffer was read.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b6d9c125e6610591c04ca9045f641e35ce1a9226",
      "tree": "416672c79a3ee4b0764561ba5ebcf9ed3ba4d5c7",
      "parents": [
        "165476671f731b4c3d6cf401d0e1886f4a4f4a8e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: handle errors in device probe\n\nand add a missing pci_disable_device() to device shutdown.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "165476671f731b4c3d6cf401d0e1886f4a4f4a8e",
      "tree": "59bba3913c7bb3a023394bce86bb0ea79d95f1ed",
      "parents": [
        "55e77c06c6017a70630cf599770369b8ba07c841"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: fix IRQ handler for card ejection\n\nUntested, I don\u0027t have a PCILynx CardBus card.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "55e77c06c6017a70630cf599770369b8ba07c841",
      "tree": "5fe5940bd0e0326afad0898b521490b53c894adf",
      "parents": [
        "685c3f80b6d88478a6428676f9daab59faf3cd4b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: unroll some simple functions\n\nnosy_start/stop_snoop() and nosy_add/remove_client() are simple enough\nto be inlined into their callers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "685c3f80b6d88478a6428676f9daab59faf3cd4b",
      "tree": "3f1f93927c0241ba12d887bcf7b90fc52d760884",
      "parents": [
        "a2d39db9dec0e7e403f54c9cf98b7dbc82b4c44a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: use flagless variants of spinlock accessors\n\nnosy_start/stop_snoop() are always only called by the ioctl method, i.e.\nwith IRQs enabled.  packet_handler() and bus_reset_handler() are always\nonly called by the IRQ handler.  Hence neither one needs to track IRQ\nflags.\n\nTo underline the call context of packet_handler() and\nbus_reset_handler(), rename these functions to *_irq_handler().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a2d39db9dec0e7e403f54c9cf98b7dbc82b4c44a",
      "tree": "86e4e8447f83cefa4ae4809051fffad04b8229ef",
      "parents": [
        "c7b2a99c66e7b40d8843a70f2981e375eeedf062"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: fix list corruption by NOSY_IOC_STOP\n\nnosy_stop_snoop() would blow up the second time it was called without\nnosy_start_snoop() in between.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c7b2a99c66e7b40d8843a70f2981e375eeedf062",
      "tree": "56039d14506b685e009f0b501264cba08d3e5484",
      "parents": [
        "b5e47729043c9224b21ab3dc7c63e8a38dbb4923"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: convert to unlocked ioctl\n\nThe required serialization of NOSY_IOC_START and NOSY_IOC_STOP is\nalready provided by the client_list_lock.\n\nNOSY_IOC_FILTER does not really require serialization since accesses\nto tcode_mask are atomic on any sane CPU architecture.  Nevertheless,\nmake it explicit that we want this to be atomic by means of\nclient_list_lock (which also surrounds the other tcode_mask access in\nthe IRQ handler).  While we are at it, change the type of tcode_mask to\nu32 for consistency with the user API.\n\nNOSY_IOC_GET_STATS does not require serialization against itself.  But\nthere is a bug here regarding concurrent updates of the two counters\nby the IRQ handler.  Fix it by taking the client_list_lock in this ioctl\ntoo.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b5e47729043c9224b21ab3dc7c63e8a38dbb4923",
      "tree": "2acf6aa0f441c3a6b8812c8c5eb3b97a74f98056",
      "parents": [
        "286468210d83ce0ca1e37e346ed9f4457a161650"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 10:28:30 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: misc cleanups\n\nExtend copyright note to 2007, c.f. Kristian\u0027s git log.\n\nIncludes:\n  - replace some \u003casm/*.h\u003e by \u003clinux/*.h\u003e\n  - add required indirectly included \u003clinux/spinlock.h\u003e\n  - order alphabetically\n\nCoding style related changes:\n  - change to utf8\n  - normalize whitespace\n  - normalize comment style\n  - remove usages of __FUNCTION__\n  - remove an unnecessary cast from void *\n\nConst and static declarations:\n  - driver_name is not const in pci_driver.name, drop const qualifier\n  - driver_name can be taken from KBUILD_MODNAME\n  - the global variable minors[] can and should be static\n  - constify struct file_operations instance\n\nData types:\n  - Remove unused struct member struct packet.code.  struct packet is\n    only used for driver-internal bookkeeping; it does not appear on the\n    wire or in DMA programs or the userspace ABI.  Hence the unused\n    member .code can be removed without worries.\n\nPreprocessor macros:\n  - unroll a preprocessor macro that containd a return\n  - use list_for_each_entry\n\nPrintk:\n  - add missing terminating \\n in some format strings\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "286468210d83ce0ca1e37e346ed9f4457a161650",
      "tree": "e445a09a6a074e3ae65479e417d41d4d1c41f571",
      "parents": [
        "e40152ee1e1c7a63f4777791863215e3faa37a86"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 10:26:33 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: new driver: nosy - IEEE 1394 traffic sniffer\n\nThis adds the traffic sniffer driver for Texas Instruments PCILynx/\nPCILynx2 based cards.  The use cases for nosy are analysis of\nnonstandard protocols and as an aid in development of drivers,\napplications, or firmwares.\n\nAuthor of the driver is Kristian Høgsberg.  Known contributers are\nJody McIntyre and Jonathan Woithe.\n\nNosy programs PCILynx chips to operate in promiscuous mode, which is a\nfeature that is not found in OHCI-1394 controllers.  Hence, only special\nhardware as mentioned in the Kconfig help text is suitable for nosy.\n\nThis is only the kernelspace part of nosy.  There is a userspace\ninterface to it, called nosy-dump, proposed to be added into the tools/\nsubdirectory of the kernel sources in a subsequent change.  Kernelspace\nand userspave component of nosy communicate via a \u0027misc\u0027 character\ndevice file called /dev/nosy with a simple ioctl() and read() based\nprotocol, as described by nosy-user.h.\n\nThe files added here are taken from\ngit://anongit.freedesktop.org/~krh/nosy commit ee29be97 (2009-11-10)\nwith the following changes by Stefan Richter:\n  - Kconfig and Makefile hunks are written from scratch.\n  - Commented out version printk in nosy.c.\n  - Included missing \u003clinux/sched.h\u003e, reported by Stephen Rothwell.\n\n\"git shortlog nosy{-user.h,.c,.h}\" from nosy\u0027s git repository:\n\nJonathan Woithe (2):\n      Nosy updates for recent kernels\n      Fix uninitialised memory (needed for 2.6.31 kernel)\n\nKristian Høgsberg (5):\n      Pull over nosy from mercurial repo.\n      Use a misc device instead.\n      Add simple AV/C decoder.\n      Don\u0027t break down on big payloads.\n      Set parent device for misc device.\n\nAs a low-level IEEE 1394 driver, its files are placed into\ndrivers/firewire/ although nosy is not part of the firewire driver\nstack.\n\nI am aware of the following literature from Texas Instruments about\nPCILynx programming:\n      SCPA020A - PCILynx 1394 to PCI Bus Interface TSB12LV21BPGF\n                 Functional Specification\n      SLLA023  - Initialization and Asynchronous Programming of the\n                 TSB12LV21A 1394 Device\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Kristian Høgsberg \u003ckrh@bitplanet.net\u003e\n"
    },
    {
      "commit": "8e2b2b46ea4ca5ef790dddf78b360ed736a62d7c",
      "tree": "35fb2be1225c5a4733d4be8c03bc5725f79b43c2",
      "parents": [
        "0c9ae701ae1caf657326db22d61074b40a747c9d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:05:39 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: improve FW_CDEV_IOC_ALLOCATE\n\nIn both the ieee1394 stack and the firewire stack, the core treats\nkernelspace drivers better than userspace drivers when it comes to\nCSR address range allocation:  The former may request a register to be\nplaced automatically at a free spot anywhere inside a specified address\nrange.  The latter may only request a register at a fixed offset.\n\nHence, userspace drivers which do not require a fixed offset potentially\nneed to implement a retry loop with incremented offset in each retry\nuntil the kernel does not fail allocation with EBUSY.  This awkward\nprocedure is not fundamentally necessary as the core already provides a\nsuperior allocation API to kernelspace drivers.\n\nTherefore change the ioctl() ABI by addition of a region_end member in\nthe existing struct fw_cdev_allocate.  Userspace and kernelspace APIs\nwork the same way now.\n\nThere is a small cost to pay by clients though:  If client source code\nis required to compile with older kernel headers too, then any use of\nthe new member fw_cdev_allocate.region_end needs to be enclosed by\n#ifdef/#endif directives.  However, any client program that seriously\nwants to use address range allocations will require a kernel of cdev ABI\nversion \u003e\u003d 4 at runtime and a linux/firewire-cdev.h header of \u003e\u003d 4\nanyway.  This is because v4 brings FW_CDEV_EVENT_REQUEST2.  The only\nclient program in which build-time compatibility with struct\nfw_cdev_allocate as found in older kernel headers makes sense is\nlibraw1394.\n\n(libraw1394 uses the older broken FW_CDEV_EVENT_REQUEST to implement a\nmakeshift, incorrect transaction responder that does at least work\nsomewhat in many simple scenarios, relying on guesswork by libraw1394\nand by libraw1394 based applications.  Plus, address range allocation\nand transaction responder is only one of many features that libraw1394\nneeds to provide, and these other features need to work with kernel and\nkernel-headers as old as possible.  Any new linux/firewire-cdev.h based\nclient that implements a transaction responder should never attempt to\ndo it like libraw1394;  instead it should make a header and kernel of v4\nor later a hard requirement.)\n\nWhile we are at it, update the struct fw_cdev_allocate documentation to\nbetter reflect the recent fw_cdev_event_request2 ABI addition.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0c9ae701ae1caf657326db22d61074b40a747c9d",
      "tree": "97eccc9b9941e71c471b5b3f32450c89f476093f",
      "parents": [
        "cc550216ae9a2993ef3973464714dc1a39ab1f86"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:02:54 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: core: fix upper bound of possible CSR allocations\n\nregion-\u003eend is defined as an upper bound of the requested address range,\nexclusive --- i.e. as an address outside of the range in which the\nrequested CSR is to be placed.\n\nHence 0x0001,0000,0000,0000 is the biggest valid region-\u003eend, not\n0x0000,ffff,ffff,fffc like the current check asserted.\n\nFor simplicity, the fix drops the region-\u003eend \u0026 3 test because there is\nno actual problem with these bits set in region-\u003eend.  The allocated\naddress range will be quadlet aligned and of a size of multiple quadlets\ndue to the checks for region-\u003estart \u0026 3 and handler-\u003elength \u0026 3 alone.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cc550216ae9a2993ef3973464714dc1a39ab1f86",
      "tree": "62ffde836c83fe44b7a9edc01d00bcb9ad4f4ad6",
      "parents": [
        "bf54e1462b9192fdef7ea9e2bc44fdc16a4b87bc"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 18 13:00:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: add PHY pinging\n\nThis extends the FW_CDEV_IOC_SEND_PHY_PACKET ioctl() for /dev/fw* to be\nuseful for ping time measurements.  One application for it would be gap\ncount optimization in userspace that is based on ping times rather than\nhop count.  (The latter is implemented in firewire-core itself but is\nnot applicable to beta PHYs that act as repeater.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "bf54e1462b9192fdef7ea9e2bc44fdc16a4b87bc",
      "tree": "31ec8e4e13b76d22b7bf9f93ea620e88911fe416",
      "parents": [
        "850bb6f23b93c04ce1e4509a87fa607dc17d97c1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 16 22:25:51 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: add PHY packet reception\n\nAdd an FW_CDEV_IOC_RECEIVE_PHY_PACKETS ioctl() and\nFW_CDEV_EVENT_PHY_PACKET_RECEIVED poll()/read() event for /dev/fw*.\nThis can be used to get information from remote PHYs by remote access\nPHY packets.\n\nThis is also the 2nd half of the functionality (the receive part) to\nsupport a userspace implementation of a VersaPHY transaction layer.\n\nSafety considerations:\n\n  - PHY packets are generally broadcasts, hence some kind of elevated\n    privileges should be required of a process to be able to listen in\n    on PHY packets.  This implementation assumes that a process that is\n    allowed to open the /dev/fw* of a local node does have this\n    privilege.\n\n    There was an inconclusive discussion about introducing POSIX\n    capabilities as a means to check for user privileges for these\n    kinds of operations.\n\nOther limitations:\n\n  - PHY packet reception may be switched on by ioctl() but cannot be\n    switched off again.  It would be trivial to provide an off switch,\n    but this is not worth the code.  The client should simply close()\n    the fd then, or just ignore further events.\n\n  - For sake of simplicity of API and kernel-side implementation, no\n    filter per packet content is provided.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "850bb6f23b93c04ce1e4509a87fa607dc17d97c1",
      "tree": "4ec66cea35e15ff095799bae4aec7c1071d4faa4",
      "parents": [
        "b9dc61cf404165fb77e80c853e9fec9af258f9ce"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 16 22:25:14 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: add PHY packet transmission\n\nAdd an FW_CDEV_IOC_SEND_PHY_PACKET ioctl() for /dev/fw* which can be\nused to implement bus management related functionality in userspace.\n\nThis is also half of the functionality (the transmit part) that is\nneeded to support a userspace implementation of a VersaPHY transaction\nlayer.\n\nSafety considerations:\n\n  - PHY packets are generally broadcasts and may have interesting\n    effects on PHYs and the bus, e.g. make asynchronous arbitration\n    impossible due to too low gap count.  Hence some kind of elevated\n    privileges should be required of a process to be able to send\n    PHY packets.  This implementation assumes that a process that is\n    allowed to open the /dev/fw* of a local node does have this\n    privilege.\n\n    There was an inconclusive discussion about introducing POSIX\n    capabilities as a means to check for user privileges for these\n    kinds of operations.\n\n  - The kernel does not check integrity of the supplied packet data.\n    That would be far too much code, considering the many kinds of\n    PHY packets.  A process which got the privilege to send these\n    packets is trusted to do it correctly.\n\nJust like with the other \"send packet\" ioctls, a non-blocking API is\nchosen; i.e. the ioctl may return even before AT DMA started.  After\ntransmission, an event for poll()/read() is enqueued.  Most users are\ngoing to need a blocking API, but a blocking userspace wrapper is easy\nto implement, and the second of the two existing libraw1394 calls\nraw1394_phy_packet_write() and raw1394_start_phy_packet_write() can be\nbetter supported that way.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b9dc61cf404165fb77e80c853e9fec9af258f9ce",
      "tree": "7a8f7741b9482218332fa68bfcfcd54583434809",
      "parents": [
        "d505e6e87127d4dbdaa5d91561eed810c180ca23"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 16 22:24:29 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: core: use C99 initializer in array of ioctl handlers\n\nto make the correspondence of ioctl numbers and handlers more obvious.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "18d0cdfd1a4cc9028c0ef80f94538b31541f8fe5",
      "tree": "c28db7537da311e59e871aba7f6f0edaa46535b9",
      "parents": [
        "80792d182e43bee89fce509e64fdea27e600530f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 18 12:44:01 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:27 2010 +0200"
      },
      "message": "firewire: normalize status values in packet callbacks\n\ncore-transaction.c transmit_complete_callback() and close_transaction()\nexpect packet callback status to be an ACK or RCODE, and ACKs get\ntranslated to RCODEs for transaction callbacks.\n\nAn old comment on the packet callback API (been there from the initial\nsubmission of the stack) and the dummy_driver implementation of\nsend_request/send_response deviated from this as they also included\n-ERRNO in the range of status values.\n\nLet\u0027s narrow status values down to ACK and RCODE to prevent surprises.\nRCODE_CANCELLED is chosen as the dummy_driver\u0027s RCODE as its meaning of\n\"transaction timed out\" comes closest to what happens when a transaction\ncoincides with card removal.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "02d37bed188c500ee7afb0a2dc6b65a80704c58e",
      "tree": "a019891672a1505e35eb15fa2621caffecff2c80",
      "parents": [
        "8b4f70ba4967cae90d128857af1382026a24230a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 08 16:09:06 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 13 09:58:27 2010 +0200"
      },
      "message": "firewire: core: integrate software-forced bus resets with bus management\n\nBus resets which are triggered\n  - by the kernel drivers after updates of the local nodes\u0027 config ROM,\n  - by userspace software via ioctl\nshall be deferred until after \u003e\u003d2 seconds after the last bus reset.\n\nIf multiple modifications of the local nodes\u0027 config ROM happen in a row,\nonly a single bus reset should happen after them.\n\nWhen the local node\u0027s link goes from inactive to active or vice versa,\nand at the two occasions of bus resets mentioned above --- and if the\ncurrent gap count differs from 63 --- the bus reset should be preceded\nby a PHY configuration packet that reaffirms the gap count.  Otherwise a\nbus manager would have to reset the bus again right after that.\n\nThis is necessary to promote bus stability, e.g. leave grace periods for\nallocations and reallocations of isochronous channels and bandwidth,\nSBP-2 reconnections etc.; see IEEE 1394 clause 8.2.1.\n\nThis change implements all of the above by moving bus reset initiation\ninto a delayed work (except for bus resets which are triggered by the\nbus manager workqueue job and are performed there immediately).  It\ncomes with a necessary addition to the card driver methods that allows\nto get the current gap count from PHY registers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8b4f70ba4967cae90d128857af1382026a24230a",
      "tree": "a327de21c9c5758bef562df9cb21ac90980b1c70",
      "parents": [
        "eb5b35a560510efc6bb62f05c3c82e9596cdfafe"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 07 15:36:07 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 13 09:47:47 2010 +0200"
      },
      "message": "firewire: cdev: fix fw_cdev_event_bus_reset emission after local config ROM changes\n\nWhen a descriptor was added or removed to the local node\u0027s config ROM,\nuserspace clients which had a local node\u0027s /dev/fw* open did not receive\nany fw_cdev_event_bus_reset for poll()/read() consumption.\n\nThe cause was that the core-device.c facility which re-reads the config\nROM of the bus reset initiator node missed to call the fw_device update\nfunction.  The fw_units are destroyed and newly added, but their parent\nstays and needs to be updated.\n\nReported-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "eb5b35a560510efc6bb62f05c3c82e9596cdfafe",
      "tree": "59d610352e8e0e60de0ce958149fb08dddf6ce82",
      "parents": [
        "656b7afd40a9f2b0d6cf8ef1972681961b428558"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 07 14:13:14 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 13 09:47:47 2010 +0200"
      },
      "message": "firewire: core: ensure some userspace API constants match corresponding kernel API constants\n\nThe FW_ISO_ constants of the in-kernel API of firewire-core and\nFW_CDEV_ISO_ constants of the userspace API of firewire-core have\nnothing to do with each other --- except that the core-cdev.c\nimplementation relies on them having the same values.\n\nHence put some compile-time assertions into core-cdev.c.  It\u0027s lame but\nI prefer it over including the userspace API header into the kernelspace\nAPI header and defining kernelspace API constants from userspace API\nconstants.  Nor do I want to expose the kernelspace constants in one of\nthe two firewire headers that are exported to userland since this only\nconcerns the core-cdev.c implementation.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "656b7afd40a9f2b0d6cf8ef1972681961b428558",
      "tree": "959bc229119224651799c2c1fce388a78cae08b8",
      "parents": [
        "a8e93f3dccc066cd6dd1e9db1e35942914fc57d1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 07 13:26:18 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 13 09:47:47 2010 +0200"
      },
      "message": "firewire: core: fix fw_send_request kerneldoc comment\n\nThe present inline documentation of the fw_send_request() in-kernel API\nrefers to userland code that is not applicable to kernel drivers at all.\n\nReported-by: Ben Gamari \u003cbgamari.foss@gmail.com\u003e\n\nWhile we are at fixing the whole documentation of fw_send_request(),\nalso improve the rest of firewire-core\u0027s kerneldoc comments:\n  - Add a bit of text concerning fw_run_transaction()\u0027s call parameters.\n  - Append () to function names and tab-align parameter descriptions as\n    suggested by the example in Documentation/kernel-doc-nano-HOWTO.txt.\n  - Remove kerneldoc markers from comments on static functions.\n  - Remove outdated parameter descriptions at build_tree().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a8e93f3dccc066cd6dd1e9db1e35942914fc57d1",
      "tree": "9165f872029ef76e99fd40c0afb6d8c896f8cabc",
      "parents": [
        "250b2b6dd421c9f8844a867d2ac06e0661e0ad93"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Jul 07 14:37:30 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 13 09:47:47 2010 +0200"
      },
      "message": "firewire: cdev: check write quadlet request length to avoid buffer overflow\n\nCheck that the data length of a write quadlet request actually is large\nenough for a quadlet.  Otherwise, fw_fill_request could access the four\nbytes after the end of the outbound_transaction_event structure.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nModification of Clemens\u0027 change:  Consolidate the check into\ninit_request() which is used by the affected ioctl_send_request() and\nioctl_send_broadcast_request() and the unaffected\nioctl_send_stream_packet(), to save a few lines of code.\n\nNote, since struct outbound_transaction_event *e is slab-allocated, such\nan out-of-bounds access won\u0027t hit unallocated memory but may result in a\n(virtually impossible to exploit) information disclosure.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "250b2b6dd421c9f8844a867d2ac06e0661e0ad93",
      "tree": "b86719d2c442676a52c6307471c9e278b1bd21f5",
      "parents": [
        "ae948011071c12ff6a328348859c717ea885ed40"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jun 21 23:24:35 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 08 16:52:02 2010 +0200"
      },
      "message": "firewire: cdev: fix fw_cdev_event_bus_reset.bm_node_id\n\nFix an obscure ABI feature that is a bit of a hassle to implement.\nHowever, somebody put it into the ABI, so let\u0027s fill in a sensible\nvalue there.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ae948011071c12ff6a328348859c717ea885ed40",
      "tree": "7ca46403da2d288ca64e0d858dbe7cfc07e34a6d",
      "parents": [
        "3b2b65d68fc87b02ac393a031a4ebb3de84a8218"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jun 21 23:23:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 08 16:45:54 2010 +0200"
      },
      "message": "firewire: core: no need to track irq flags in bm_work\n\nThis is a workqueue job and always entered with IRQs enabled.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e205597d188a9ea69ce43f740a14f07b3f5b996a",
      "tree": "9b894920db99c784c9abbe95269b972d0a1fc5c7",
      "parents": [
        "c82f91f2663e79b150afd896ec72e798ba4e243d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 22:53:55 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 23:11:56 2010 +0200"
      },
      "message": "firewire: cdev: fix ABI for FCP and address range mapping, add fw_cdev_event_request2\n\nThe problem:\n\nA target-like userspace driver, e.g. AV/C target or SBP-2/3 target,\nneeds to be able to act as responder and requester.  In the latter role,\nit needs to send requests to nods from which it received requests.  This\nis currently impossible because fw_cdev_event_request lacks information\nabout sender node ID.\nReported-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nLibffado + libraw1394 + firewire-core is currently unable to drive two\nor more audio devices on the same bus.\nReported-by: Arnold Krille \u003carnold@arnoldarts.de\u003e\n\nThis is because libffado requires destination node ID of FCP requests\nand sender node ID of FCP responses to match.  It even prohibits\nlibffado from working with a bus on which libraw1394 opens a /dev/fw* as\ndefault ioctl device that does not correspond with the audio device.\nThis is because libraw1394 does not receive the sender node ID from the\nkernel.\n\nMoreover, fw_cdev_event_request makes it impossible to tell unicast and\nbroadcast write requests apart.\n\nThe fix:\n\nAdd a replacement of struct fw_cdev_event_request request, boringly\ncalled struct fw_cdev_event_request2.  The new event will be sent to a\nuserspace client instead of the old one if the client claims\ncompatibility with \u003clinux/firewire-cdev.h\u003e ABI version 4 or later.\n\nlibraw1394 needs to be extended to make use of the new event, in order\nto properly support libffado and other FCP or address range mapping\nusers who require correct sender node IDs.\n\nFurther notes:\n\nWhile we are at it, change back the range of possible values of\nfw_cdev_event_request.tcode to 0x0...0xb like in ABI version \u003c\u003d 3.\nThe preceding change \"firewire: expose extended tcode of incoming lock\nrequests to (userspace) drivers\" expanded it to 0x0...0x17 which could\ncatch sloppily coded clients by surprise.  The extended range of codes\nis only used in the new fw_cdev_event_request2.tcode.\n\nJay and I also suggested an alternative approach to fix the ABI for\nincoming requests:  Add an FW_CDEV_IOC_GET_REQUEST_INFO ioctl which can\nbe called after reception of an fw_cdev_event_request, before issuing of\nthe closing FW_CDEV_IOC_SEND_RESPONSE ioctl.  The new ioctl would reveal\nthe vital information about a request that fw_cdev_event_request lacks.\nJay showed an implementation of this approach.\n\nThe former event approach adds 27 LOC of rather trivial code to\ncore-cdev.c, the ioctl approach 34 LOC, some of which is nontrivial.\nThe ioctl approach would certainly also add more LOC to userspace\nprograms which require the expanded information on inbound requests.\nThis approach is probably only on the lighter-weight side in case of\nclients that want to be compatible with kernels that lack the new\ncapability, like libraw1394.  However, the code to be added to such\nlibraw1394-like clients in case of the event approach is a straight-\nforward additional switch () case in its event handler.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c82f91f2663e79b150afd896ec72e798ba4e243d",
      "tree": "12555e4299cb8cb7e958ff7576b6a5be2b781e0d",
      "parents": [
        "604f45167824e18ad5766e51ecf1d4d65f15118d"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Tue May 18 10:57:33 2010 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 23:11:56 2010 +0200"
      },
      "message": "firewire: expose extended tcode of incoming lock requests to (userspace) drivers\n\nWhen a remote device does a LOCK_REQUEST, the core does not pass\nthe extended tcode to userspace.  This patch makes it use the\njuju-specific tcodes listed in firewire-constants.h for incoming\nrequests.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nThis matches how tcode in the API for outbound requests is treated.\nAffects kernelspace and userspace drivers alike, but at the moment there\nare no kernespace drivers that receive lock requests.\n\nSplit out from a combo patch, slightly reordered, changelog reworded.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "604f45167824e18ad5766e51ecf1d4d65f15118d",
      "tree": "40deeca88e1788e98d54d82f429a45ce276c4135",
      "parents": [
        "0244f57302f7e8bebd2f1ab58767eac2e9f678a6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 22:52:55 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 23:11:56 2010 +0200"
      },
      "message": "firewire: cdev: freeze FW_CDEV_VERSION due to libraw1394 bug\n\nlibraw1394 v2.0.0...v2.0.5 takes FW_CDEV_VERSION from an externally\ninstalled header file and uses it to declare its own implementation\nlevel in FW_CDEV_IOC_GET_INFO.  This is wrong; it should set the real\nversion for which it was actually written.\n\nIf we add features to the kernel ABI that require the kernel to check\na client\u0027s implementation level, we can not trust the client version if\nit was set from FW_CDEV_VERSION.\n\nHence freeze FW_CDEV_VERSION at the current value (no damage has been\ndone yet), clearly document FW_CDEV_VERSION as a dummy version and what\nclients are expected to do with fw_cdev_get_info.version, and use a new\ndefined constant (which is not placed into the exported header file) as\nkernel implementation level.\n\nNote, in order to check in client program source code which features are\npresent in an externally installed linux/firewire-cdev.h, use\npreprocessor directives like\n  #ifdef FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE\nor\n  #ifdef FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED\ninstead of a check of FW_CDEV_VERSION.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0244f57302f7e8bebd2f1ab58767eac2e9f678a6",
      "tree": "b9ea719d24b41f9df661e8de1dab36bfc3c58b11",
      "parents": [
        "08bd34c98d631fe85744d4c920c80f48a1d95f54"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 22:52:27 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 23:11:56 2010 +0200"
      },
      "message": "firewire: cdev: count references of cards during inbound transactions\n\nIf a request comes in to an address range managed by a userspace driver\ni.e. \u003clinux/firewire-cdev.h\u003e client, the card instance of request and\nresponse may differ from the card instance of the client device.\nTherefore we need to take a reference of the card until the response was\nsent.\n\nI thought about putting the reference counting into core-transaction.c,\nbut the various high-level drivers besides cdev clients (firewire-net,\nfirewire-sbp2, firedtv) use the card pointer in their fw_address_handler\naddress_callback method only to look up devices of which they already\nhold the necessary references.  So this seems to be a specific\nfirewire-cdev issue which is better addressed locally.\n\nWe do not need the reference\n  - in case of FCP_REQUEST or FCP_RESPONSE requests because then the\n    firewire-core will send the split transaction response for us\n    already in the context of the request handler,\n  - if it is the same card as the client device\u0027s because we hold a\n    card reference indirectly via teh client-\u003edevice reference.\nTo keep things simple, we take the reference nevertheless.\n\nJay Fenlason wrote:\n\u003e there\u0027s no way for the core to tell cdev \"this card is gone,\n\u003e kill any inbound transactions on it\", while cdev holds the transaction\n\u003e open until userspace issues a SEND_RESPONSE ioctl, which may be a very,\n\u003e very long time.  But when it does, it calls fw_send_response(), which\n\u003e will dereference the card...\n\u003e\n\u003e So how unhappy are we about userspace potentially holding a fw_card\n\u003e open forever?\n\nWhile termination of inbound transcations at card removal could be\nimplemented, it is IMO not worth the effort.  Currently, the effect of\nholding a reference of a card that has been removed is to block the\nprocess that called the pci_remove of the card.  This is\n  - either a user process ran by root.  Root can find and kill processes\n    that have /dev/fw* open, if desired.\n  - a kernel thread (which one?) in case of hot removal of a PCCard or\n    ExpressCard.\nThe latter case could be a problem indeed.  firewire-core\u0027s card\nshutdown and card release should probably be improved not to block in\nshutdown, just to defer freeing of memory until release.\n\nThis is not a new problem though; the same already always happens with\nthe client-\u003edevice-\u003ecard without the need of inbound transactions or\nother special conditions involved, other than the client not closing the\nfile.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "08bd34c98d631fe85744d4c920c80f48a1d95f54",
      "tree": "cebfda304248a705e2b46f9d105b3c22705169f1",
      "parents": [
        "bdfe273ee54b29498851fc8058516037d284270c"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Tue May 18 14:02:45 2010 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 23:11:56 2010 +0200"
      },
      "message": "firewire: cdev: fix responses to nodes at different card\n\nMy box has two firewire cards in it: card0 and card1.\nMy application opens /dev/fw0 (card 0) and allocates an address space.\nThe core makes the address space available on both cards.\nAlong comes the remote device, which sends a READ_QUADLET_REQUEST to\ncard1.  The request gets passed up to my application, which calls\nioctl_send_response().\n\nioctl_send_response() then calls fw_send_response() with card0,\nbecause that\u0027s the card it\u0027s bound to.\nCard0\u0027s driver drops the response, because it isn\u0027t part of\na transaction that it has outstanding.\n\nSo in core-cdev: handle_request(), we need to stash the\ncard of the inbound request in the struct inbound_transaction_resource and\nuse that card to send the response to.\n\nThe hard part will be refcounting the card correctly\nso it can\u0027t get deallocated while we hold a pointer to it.\n\nHere\u0027s a trivial patch, which does not do the card refcounting, but at\nleast demonstrates what the problem is.\n\nNote that we can\u0027t depend on the fact that the core-cdev:client\nstructure holds a card open, because in this case the card it holds\nopen is not the card the request came in on.\n\n..and there\u0027s no way for the core to tell cdev \"this card is gone,\nkill any inbound transactions on it\", while cdev holds the transaction\nopen until userspace issues a SEND_RESPONSE ioctl, which may be a very,\nvery long time.  But when it does, it calls fw_send_response(), which\nwill dereference the card...\n\nSo how unhappy are we about userspace potentially holding a fw_card\nopen forever?\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nReference counting to be addressed in a separate change.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (whitespace)\n"
    },
    {
      "commit": "bdfe273ee54b29498851fc8058516037d284270c",
      "tree": "1e4a94774ae5469ee6e4bc9bd5bb1e43db67c511",
      "parents": [
        "33e553fe2b4a983ef34a57ab1440d8d33397bb12"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Jun 14 11:46:25 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 23:11:56 2010 +0200"
      },
      "message": "firewire: cdev: fix race in iso context creation\n\nProtect the client\u0027s iso context pointer against a race that can happen\nwhen more than one creation call is executed at the same time.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "33e553fe2b4a983ef34a57ab1440d8d33397bb12",
      "tree": "3a7098a935f0b678a6e6a565619d0d990f9122f3",
      "parents": [
        "56d04cb189f955e5167c27944d61aa57ad69b598"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 22:50:35 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 23:11:55 2010 +0200"
      },
      "message": "firewire: remove an unused function argument\n\nvoid (*fw_address_callback_t)(..., int speed, ...) is the speed that a\nremote node chose to transmit a request to us.  In case of split\ntransactions, firewire-core will transmit the response at that speed.\n\nUpper layer drivers on the other hand (firewire-net, -sbp2, firedtv, and\nuserspace drivers) cannot do anything useful with that speed datum,\nexcept log it for debug purposes.  But data that is merely potentially\n(not even actually) used for debug purposes does not belong into the API.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "56d04cb189f955e5167c27944d61aa57ad69b598",
      "tree": "3cea2dce19e0a52c215b2a389f45ed51077a2041",
      "parents": [
        "ae86e81e434072be28ff4e9c1be3cc2562be8749"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 08 00:20:10 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 17:06:25 2010 +0200"
      },
      "message": "firewire: core: remove an unnecessary zero initialization\n\nAll of the fields of the iso_interrupt_event instance are overwritten\nright after it was allocated.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ae86e81e434072be28ff4e9c1be3cc2562be8749",
      "tree": "f73b99c0fa7d96cc94e2ae6110bcc9d5855a02f7",
      "parents": [
        "5030c807907ae90ad21e9220c1a9d592558deba2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 15 01:22:45 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: core: remove unused variable\n\nwhich caused gcc 4.6 to warn about\n    variable \u0027destination\u0027 set but not used.\n\nSince the hardware ensures that we receive only response packets with\nproper destination node ID (in a given bus generation), we have no use\nfor destination here in the core as well as in upper layers.\n\n(This is different with request packets.  There we pass destination node\nID to upper layers because they may for example need to check whether\nthis was an unicast or broadcast request.)\n\nReported-and-Tested-By: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0fcff4e39323f466a47684d7c8ffa77e1be86c8a",
      "tree": "cdbe9d239ae59c18a48a34d937da3f658c61e873",
      "parents": [
        "b384cf18873da1ed100662aa7373edf5883a1c24"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:35:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: rename CSR access driver methods\n\nRather than \"read a Control and Status Registers (CSR) Architecture\nregister\" I prefer to say \"read a Control and Status Register\".\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b384cf18873da1ed100662aa7373edf5883a1c24",
      "tree": "2c4f488315855554dd430d0cc1e8969333f26d54",
      "parents": [
        "c8a94ded57e9cc2498d401b2f5c856213a3e19fb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:35:21 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: core: combine some repeated code\n\nAll of these CSRs have the same read/ write/ aynthing-else handling,\nexcept for CSR_PRIORITY_BUDGET which might not be implemented.\n\nThe CSR_CYCLE_TIME read handler implementation accepted 4-byte-sized\nblock write requests before this change but this is just silly; the\nregister is only required to support quadlet read and write requests\nlike the other r/w CSR core and Serial-Bus-dependent registers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8a94ded57e9cc2498d401b2f5c856213a3e19fb",
      "tree": "8fd6a196ff953270c03700dd682108baf3ee369b",
      "parents": [
        "db3c9cc105ee844f6cd7a1beb9926fb8e9a093ae"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:34:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: normalize STATE_CLEAR/SET CSR access interface\n\nPush the maintenance of STATE_CLEAR/SET.abdicate down into the card\ndriver.  This way, the read/write_csr_reg driver method works uniformly\nacross all CSR offsets.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "db3c9cc105ee844f6cd7a1beb9926fb8e9a093ae",
      "tree": "5fe981b7be4ffb97a506e23836d6c81a61dc8c91",
      "parents": [
        "e847cc832bab50aad939a0c30414cd986637564d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:30:21 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: replace get_features card driver hook\n\nby feature variables in the fw_card struct.  The hook appeared to be an\nunnecessary abstraction in the card driver interface.\n\nCleaner would be to pass those feature flags as arguments to\nfw_card_initialize() or fw_card_add(), but the FairnessControl register\nis in the SCLK domain and may therefore not be accessible while Link\nPower Status is off, i.e. before the card-\u003edriver-\u003eenable call from\nfw_card_add().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e847cc832bab50aad939a0c30414cd986637564d",
      "tree": "35b5d7af3e3f3337b8f7c9c43029618bec3a1f69",
      "parents": [
        "65b2742ac002f554f6ca0c2eab84cc62400eafdf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:29:07 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:40 2010 +0200"
      },
      "message": "firewire: drop sizeof expressions from some request size arguments\n\nIn case of fw_card_bm_work()\u0027s lock request, the present sizeof\nexpression is going to be wrong if somebody changes the fw_card\u0027s DMA\nscratch buffer\u0027s size in the future.\n\nIn case of quadlet write requests, sizeof(u32) is just silly; it\u0027s 4.\n\nIn case of SBP-2 ORB pointer write requests, 8 is arguably quicker to\nunderstand as the correct and only possible value than\nsizeof(some_datum).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "65b2742ac002f554f6ca0c2eab84cc62400eafdf",
      "tree": "a13b0dc0883a5e126f2577f8061705c4c38debc0",
      "parents": [
        "c374ab424249b6ab91b1aee7460419d3f2c321df"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:26:51 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:40 2010 +0200"
      },
      "message": "firewire: \u0027add CSR_... support\u0027 addendum\n\nAdd a comment on which of the conflicting NODE_IDS specifications we\nimplement.  Reduce a comment on rather irrelevant register bits that can\nall be looked up in the spec (or from now on in the code history).\nDirectly include the required indirectly included bug.h.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c374ab424249b6ab91b1aee7460419d3f2c321df",
      "tree": "70da7005c955691ff436676c678cf2e9dac73aa4",
      "parents": [
        "e91b2787d0a2e4719b016e8dec0afd2d5ab6c30f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:41:51 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:41:51 2010 +0200"
      },
      "message": "firewire: core: always enable cycle master packets\n\nAs part of the bus manager responsibilities, make sure that the cycle\nmaster sends cycle start packets.  This is needed when the old bus\nmanager disabled the cycle master\u0027s cmstr bit and there are iso-capable\nnodes on the new bus.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "e91b2787d0a2e4719b016e8dec0afd2d5ab6c30f",
      "tree": "e76a3665243ed9fb7275228d9a14dcb0eb5b567a",
      "parents": [
        "7e0e314f198d5048b74c8f0ef9f4c1c02e5ecfc9"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:40:49 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:40:49 2010 +0200"
      },
      "message": "firewire: allocate broadcast channel in hardware\n\nOn OHCI 1.1 controllers, let the hardware allocate the broadcast channel\nautomatically.  This removes a theoretical race condition directly after\na bus reset where it could be possible to read the channel allocation\nregister with channel 31 still being unallocated.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "7e0e314f198d5048b74c8f0ef9f4c1c02e5ecfc9",
      "tree": "513fcf8f87f6b24121d4e4eb07e1345e29d81db2",
      "parents": [
        "4ffb7a6a066e4be4577976d1c08e237c7479770a"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:37:15 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:37:15 2010 +0200"
      },
      "message": "firewire: core: add CSR abdicate support\n\nImplement the abdicate bit, which is required for bus manager\ncapable nodes and tested by the Base 1394 Test Suite.\n\nFinally, something to do at a command reset!  :-)\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "4ffb7a6a066e4be4577976d1c08e237c7479770a",
      "tree": "fd4c275e8ef894d60602e1b4d1f81150e54b32f8",
      "parents": [
        "3d1f46eb60b155c705e389ecdf313f11b4b91976"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:36:37 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:36:37 2010 +0200"
      },
      "message": "firewire: add CSR cmstr support\n\nImplement the cmstr bit, which is required for cycle master capable\nnodes and tested for by the Base 1394 Test Suite.\n\nThis bit allows the bus master to disable cycle start packets; there are\nbus master implementations that actually do this.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "3d1f46eb60b155c705e389ecdf313f11b4b91976",
      "tree": "6a28e68a7372d49f172f73a2c30e1a72dd124ffa",
      "parents": [
        "a1a1132bd83d0aea51d4f19be4b4a58a064a0131"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:37 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:37 2010 +0200"
      },
      "message": "firewire: core: add CSR MAINT_UTILITY support\n\nImplement the MAIN_UTILITY register, which is utterly optional\nbut useful as a safe target for diagnostic read/write/broadcast\ntransactions.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "a1a1132bd83d0aea51d4f19be4b4a58a064a0131",
      "tree": "93352d6aa9fd8eaa0521fbeb65853cd9f485666e",
      "parents": [
        "27a2329f8235d6ce637463f5d83e98d760ef006e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:06 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:06 2010 +0200"
      },
      "message": "firewire: add CSR PRIORITY_BUDGET support\n\nIf supported by the OHCI controller, implement the PRIORITY_BUDGET\nregister, which is required for nodes that can use asynchronous\npriority arbitration.\n\nTo allow the core to determine what features the lowlevel device\nsupports, add a new card driver callback.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "27a2329f8235d6ce637463f5d83e98d760ef006e",
      "tree": "dcc3b1a62d92d407f38744a93914742e9eed1816",
      "parents": [
        "a48777e03ad53777ed119a5f86dd22a6c5a378ad"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:34:13 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:34:13 2010 +0200"
      },
      "message": "firewire: add CSR BUSY_TIMEOUT support\n\nImplement the BUSY_TIMEOUT register, which is required for nodes that\nsupport retries.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "a48777e03ad53777ed119a5f86dd22a6c5a378ad",
      "tree": "651a3fb567a2b9d6ab111ff07415d87397ba8202",
      "parents": [
        "9ab5071cd4a16001e4ba790172a7da5e4172462b"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:33:07 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:33:07 2010 +0200"
      },
      "message": "firewire: add CSR BUS_TIME support\n\nImplement the BUS_TIME register, which is required for cycle master\ncapable nodes and tested for by the Base 1393 Test Suite.  Even when\nthere is not yet bus master initialization support, this register allows\nus to work together with other bus masters.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "9ab5071cd4a16001e4ba790172a7da5e4172462b",
      "tree": "bb1ba598d4f2df93b661411c833b60bb953e3390",
      "parents": [
        "8e4b50f94e8c1435a3e0ece42b7f97bc857d0145"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:48 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:48 2010 +0200"
      },
      "message": "firewire: add CSR CYCLE_TIME write support\n\nThe specification requires that CYCLE_TIME is writable so that it can be\ninitialized, so we better implement it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "8e4b50f94e8c1435a3e0ece42b7f97bc857d0145",
      "tree": "aad5b85a0bf67b5a7bbd80e1dad2d2a2d9b85470",
      "parents": [
        "446eba0d6896787b2f02f7a665838d32aa7b9d3f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:28 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:28 2010 +0200"
      },
      "message": "firewire: core: add CSR SPLIT_TIMEOUT support\n\nImplement the SPLIT_TIMEOUT registers.  Besides being required by the\nspec, this is desirable for some IIDC devices and necessary for many\naudio devices to be able to increase the timeout from userspace.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "446eba0d6896787b2f02f7a665838d32aa7b9d3f",
      "tree": "a4428929ea4f7512cf9fd77f60195ce6bc8af08e",
      "parents": [
        "506f1a31932747f56a5029d5b3c14b1b68f41ccc"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:25:46 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:25:46 2010 +0200"
      },
      "message": "firewire: core: add CSR RESET_START support\n\nThis implements the RESET_START register (as a dummy) to make the Base\n1394 Test Suite happy.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "506f1a31932747f56a5029d5b3c14b1b68f41ccc",
      "tree": "04dfb94980fc95cfc2c458fc62e6b77996c8145b",
      "parents": [
        "60d32970c5a32e8c4f340a9e41993759ad658ef2"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:25:19 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:25:19 2010 +0200"
      },
      "message": "firewire: add CSR NODE_IDS support\n\nThe NODE_IDS register, and especially its bus_id field, is quite\nuseless because 1394.1 requires that the bus_id field always stays\n0x3ff.  However, the 1394 specification requires this register on all\ntransaction capable nodes, and the Base 1394 Test Suite tests for it,\nso we better implement it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "60d32970c5a32e8c4f340a9e41993759ad658ef2",
      "tree": "a7f60c934ae250f0291622cb02540638ef7cbf6d",
      "parents": [
        "3e07ec0eee1662f89e57f84aff625065beb2b209"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:24:35 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:24:35 2010 +0200"
      },
      "message": "firewire: add read_csr_reg driver callback\n\nTo prepare for the following additions of more OHCI-implemented CSR\nregisters, replace the get_cycle_time driver callback with a generic\nCSR register callback.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "3e07ec0eee1662f89e57f84aff625065beb2b209",
      "tree": "ef164bc604c9b22d21983ae90dbe24636264db9d",
      "parents": [
        "bda3b8a1faf209a98063ccd77d6833a2bb0fc77e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:24:03 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:24:03 2010 +0200"
      },
      "message": "firewire: core: add CSR STATE_CLEAR/STATE_SET support\n\nThe state registers are zero and read-only in this implementation, so\nthey are not of much use.  However, the specification requires that they\nare present for transaction capable nodes, and the Base 1394 Test Suite\ntests for them, so we better implement them.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "bda3b8a1faf209a98063ccd77d6833a2bb0fc77e",
      "tree": "1f7146d8951a5addac9932a071a6f0e4a4d97182",
      "parents": [
        "153e3979201b76dbd5788f032fb683e95121e159"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:23:28 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:23:28 2010 +0200"
      },
      "message": "firewire: core: retry on local errors in bus manager election\n\nWhen the candidate bus manager fails to do the lock request with which\nit tries to become bus manager, it assumes that the current IRM is not\nactually IRM capable and forces itself to become root.  However, if that\nlock request failed because the local node itself was not able to send\nit, then we cannot blame the current IRM and should not steal its\nrootness.\n\nIn this case, RCODE_SEND_ERROR is likely to indicate a temporary error\ncondition such as exhausted tlabels or low memory, so we better try\nagain later.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "153e3979201b76dbd5788f032fb683e95121e159",
      "tree": "aae0a3a5dcbc0eb815e7030176b03c84da8792b9",
      "parents": [
        "f9c70f9129f2d88645c3a26711302a7f6ba9afd0"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:22:07 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:22:07 2010 +0200"
      },
      "message": "firewire: ohci: speed up PHY register accesses\n\nMost PHY chips, when idle, can complete a register access in the time\nneeded for two or three PCI read transactions; bigger delays occur only\nwhen data is currently being moved over the link/PHY interface.  So if\nwe busy-wait a few times when waiting for the register access to finish,\nit is likely that we can finish without having to sleep.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "f9c70f9129f2d88645c3a26711302a7f6ba9afd0",
      "tree": "5a50106146109d2a1744a809a3fef7f9d8bee7d1",
      "parents": [
        "a10c0ce76098857b899505d05de9f2e13ddf7a7a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 05 20:32:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 09 19:42:18 2010 +0200"
      },
      "message": "firewire: core: trivial fix for warning strings\n\nWARN\u0027s format string argument should not carry a printk level prefix.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a10c0ce76098857b899505d05de9f2e13ddf7a7a",
      "tree": "130592c6baaff2e38dd813448337dded1ee1645b",
      "parents": [
        "262444eecce40950af19ea4d75a3dc03b3c07283"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed May 19 08:28:32 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 09 19:42:18 2010 +0200"
      },
      "message": "firewire: check cdev response length\n\nAdd a check that the data length in the SEND_RESPONSE ioctl is correct.\nIncidentally, this also fixes the previously wrong response length of\nsoftware-handled lock requests.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "262444eecce40950af19ea4d75a3dc03b3c07283",
      "tree": "87b465d2bdc2cc600807910d372e68ba668bda8a",
      "parents": [
        "148c7866c31d93f8c79366189075f5a26ad4556c"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sat Jun 05 12:31:25 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 09 19:42:18 2010 +0200"
      },
      "message": "firewire: ohci: add MSI support\n\nThis patch adds support for message-signaled interrupts.\n\nAny native PCI-Express OHCI controller should support MSI, but most are\njust PCI cores behind a PCI-E/PCI bridge.  The only chips that are known\nto claim to support MSI are the Lucent/Agere/LSI FW643 and the VIA\nVT6315, none of which I have been able to test.\n\nDue to the high level of trust I have in the competence of these and any\nfuture chip makers, I thought it a good idea to add a disable-MSI quirk.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nTested Agere FW643 rev 07 [11c1:5901] and JMicron JMB381 [197b:2380].\nAdded a quirks list entry for JMB38X since it kept its count of MSI\nevents consistently at zero.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "148c7866c31d93f8c79366189075f5a26ad4556c",
      "tree": "2b82bfd64fcdf04a2fbb6bfca78e27c9c609110f",
      "parents": [
        "d8c1fa4af0f311363d9f9cf1014b11d31a99ff10"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 05 11:46:49 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 09 19:42:18 2010 +0200"
      },
      "message": "firewire: ohci: do not enable interrupts without the handler\n\nOn 26 Apr 2010, Clemens Ladisch wrote:\n\u003e In theory, none of the interrupts should occur before the link is\n\u003e enabled.  In practice, I\u0027d rather make sure to not set the master\n\u003e interrupt enable bit until we have installed the interrupt handler.\n\nand proposed to move OHCI1394_masterIntEnable out of the present\nreg_write() into a new one before the HCControl.linkEnable reg_write().\n\nWhy not defer setting /all/ of the bits until right before linkEnable?\n\nReviewed-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "10389536742cefbedecb67a5b2906f155cf3a1c3",
      "tree": "cf0dbc030578e267e7f9fe1349083c3af3090f19",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun May 30 19:43:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 02 19:48:13 2010 +0200"
      },
      "message": "firewire: core: check for 1394a compliant IRM, fix inaccessibility of Sony camcorder\n\nPer IEEE 1394 clause 8.4.2.3, a contender for the IRM role shall check\nwhether the current IRM complies to 1394a-2000 or later.  If not force a\ncompliant node (e.g. itself) to become IRM.  This was implemented in the\nolder ieee1394 driver but not yet in firewire-core.\n\nAn older Sony camcorder (Sony DCR-TRV25) which implements 1394-1995 IRM\nbut neither 1394a-2000 IRM nor BM was now found to cause an\ninteroperability bug:\n  - Camcorder becomes root node when plugged in, hence gets IRM role.\n  - firewire-core successfully contends for BM role, proceeds to perform\n    gap count optimization and resets the bus.\n  - Sony camcorder ignores presence of a BM (against the spec, this is\n    a firmware bug), performs its idea of gap count optimization and\n    resets the bus.\n  - Preceding two steps are repeated endlessly, bus never settles,\n    regular I/O is practically impossible.\nhttp://thread.gmane.org/gmane.linux.kernel.firewire.user/3913\n\nThis is an interoperability regression from the old to the new drivers.\nFix it indirectly by adding the 1394a IRM check.  The spec suggests\nthree and a half methods to determine 1394a compliance of a remote IRM;\nwe choose the method of testing the Config_ROM.Bus_Info.generation\nfield.  This is data that firewire-core should have readily available at\nthis point, i.e. does not require extra I/O.\n\nReported-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e (missing 1394a check)\nReported-by: H. S. \u003chs.samix@gmail.com\u003e (issue with Sony DCR-TRV25)\nTested-by: H. S. \u003chs.samix@gmail.com\u003e\n\nCc: \u003cstable@kernel.org\u003e # .32.x and newer\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "55ddf14b04bfe5afaab892a8fb12164b803f1dd5",
      "tree": "fd6e6f0b9508628fca8d0cadd4ece199201991b2",
      "parents": [
        "a9a0aff5b56d4c40288c000ff09c3f238b6b6fec",
        "3014420b6b5d0a6483cf5e56c10df180a33e957e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:22:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:22:06 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  ieee1394: schedule for removal\n  firewire: core: use separate timeout for each transaction\n  firewire: core: Fix tlabel exhaustion problem\n  firewire: core: make transaction label allocation more robust\n  firewire: core: clean up config ROM related defined constants\n  ieee1394: mark char device files as not seekable\n  firewire: cdev: mark char device files as not seekable\n  firewire: ohci: cleanups and fix for nonstandard build without debug facility\n  firewire: ohci: wait for PHY register accesses to complete\n  firewire: ohci: fix up configuration of TI chips\n  firewire: ohci: enable 1394a enhancements\n  firewire: ohci: do not clear PHY interrupt status inadvertently\n  firewire: ohci: add a function for reading PHY registers\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "5c40cbfefa828208c671e2f58789e4dd04f79563",
      "tree": "aa7c38eb0c9e19ee0153a1764b24c67abaf5746d",
      "parents": [
        "753a8970f68594ea69c5fc13fbca18dbd9402996"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Apr 27 09:07:00 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed May 19 00:26:30 2010 +0200"
      },
      "message": "firewire: core: use separate timeout for each transaction\n\nUsing a single timeout for all transaction that need to be flushed does\nnot work if the submission of new transactions can defer the timeout\nindefinitely into the future.  We need to have timeouts that do not\nchange due to other transactions; the simplest way to do this is with a\nseparate timer for each transaction.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (+ one lockdep annotation)\n"
    },
    {
      "commit": "753a8970f68594ea69c5fc13fbca18dbd9402996",
      "tree": "bcfc7ea1cd5264446cee9653f65bef529da4d3cc",
      "parents": [
        "7906054f0d597246178b3154adca76de29913aa5"
      ],
      "author": {
        "name": "Peter Hurley",
        "email": "phurley@charter.net",
        "time": "Fri Apr 23 19:27:25 2010 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed May 19 00:06:47 2010 +0200"
      },
      "message": "firewire: core: Fix tlabel exhaustion problem\n\nfw_core_handle_response() was not properly clearing tlabel_mask. This\nwas resulting in premature tlabel exhaustion.\n\nSigned-off-by: Peter Hurley \u003cphurley@charter.net\u003e\n\nThis fixes an omission in 2.6.31-rc1 commit 1e626fdc \"firewire: core:\nuse more outbound tlabels\" which prevented to really use 64 instead of\n32 transaction labels, as soon as split transactions occurred that had\ntheir AR-resp tasklet run after the AT-req tasklet.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1",
      "tree": "797676a336b050bfa1ef879377c07e541b9075d6",
      "parents": [
        "4cb3ca7cd7e2cae8d1daf5345ec99a1e8502cf3f",
        "c81eddb0e3728661d1585fbc564449c94165cc36"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "cfc94b2c9ac603b20db54225408df6ed80188dcd",
      "tree": "6e5b21adac556242b89931c4d0929b66efb8c0b9",
      "parents": [
        "4c6a3999651741419cd3cc4303cf0c2be07d89bc",
        "e1393667be574807a13bfaf1bb471f5fd1a5287b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 22 12:54:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 22 12:54:54 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: wait for local CSR lock access to finish\n  firewire: ohci: prevent aliasing of locally handled register addresses\n  firewire: core: fw_iso_resource_manage: return -EBUSY when out of resources\n  firewire: core: fix retries calculation in iso manage_channel()\n  firewire: cdev: fix cut+paste mistake in disclaimer\n"
    },
    {
      "commit": "7906054f0d597246178b3154adca76de29913aa5",
      "tree": "0645ad88ab8ad5cd98ce3cef95655ccc5bca0ef8",
      "parents": [
        "edd5bdaf128e04066caac84fcb21377197ea0d64"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 19 17:29:14 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 20:00:44 2010 +0200"
      },
      "message": "firewire: core: make transaction label allocation more robust\n\nIf one request is so long-lived that it does not get a response before\nthe following 63 requests, its bit in tlabel_mask is still set when the\nnext request tries to allocate a transaction label for that number.  In\nthis state, while the first request is not completed or timed out, no\nnew requests can be submitted.\n\nTo fix this, skip over any label still in use, and do not error out\nunless we have entirely run out of labels.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "edd5bdaf128e04066caac84fcb21377197ea0d64",
      "tree": "1b649a30c0c3263b1cbef23d0fcdc049228c5e8d",
      "parents": [
        "7cfe21aae155c26193fde617dc61d37a79a63f86"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Apr 14 22:30:18 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 20:00:44 2010 +0200"
      },
      "message": "firewire: core: clean up config ROM related defined constants\n\nClemens Ladisch pointed out that\n  - BIB_IMC is not named like the field is called in the standard,\n  - readers of the code may get worried about the magic 0x0c0083c0,\n  - a CSR_NODE_CAPABILITIES key is there in the header but not put to\n    good use.\n\nSo let\u0027s rename BIB_IMC, add a defined constant for Node_Capabilities\nand a comment which reassures people that somebody thought about it and\nthey don\u0027t have to (or if they still do, tell them where they have to\nlook for confirmation), and prune our incomplete and arbitrary set of\ndefined constants of CSR key IDs.  And there is a nother magic number,\nthat of Bus_Information_Block.Bus_Name, to be defined and commented.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e1393667be574807a13bfaf1bb471f5fd1a5287b",
      "tree": "5f2084f1a5099062cb27e74765ec3cd8a69c3489",
      "parents": [
        "2608203daf5f87311c6e5d36e5de5efcb14aab24"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 12 10:35:44 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 19:58:32 2010 +0200"
      },
      "message": "firewire: ohci: wait for local CSR lock access to finish\n\nAdd a loop to wait for the controller to finish a locally-initiated CSR\nlock operation.  Google shows some occurrences of the \"swap not done\nyet\" message which might indicate that some OHCI controllers are not\nfast enough to do the lock/swap in the time needed for one PCI access.\n\nThis also correctly handles the case where the lock operation did not\nfinish, instead of silently returning an uninitialized value.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2608203daf5f87311c6e5d36e5de5efcb14aab24",
      "tree": "f0060813795c68ab988a998c4cced16d67139ded",
      "parents": [
        "d6372b6e7c6142e6cc2108b3b850584cd7ade106"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 12 10:35:30 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 19:58:32 2010 +0200"
      },
      "message": "firewire: ohci: prevent aliasing of locally handled register addresses\n\nWe must compute the offset from the CSR register base with the\nfull 48 address bits to prevent matching with addresses whose\nlower 32 bits happen to be equal with one of the specially\nhandled registers.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d6372b6e7c6142e6cc2108b3b850584cd7ade106",
      "tree": "14ae5783465c1f987de1d33e5a2a70db71acbb0a",
      "parents": [
        "3a1f0a0e3d871e3d3e08a1429009992151becda8"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 12 10:35:18 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 19:58:32 2010 +0200"
      },
      "message": "firewire: core: fw_iso_resource_manage: return -EBUSY when out of resources\n\nReturning -EIO for all errors would not allow clients to determine if\nthe resource allocation process itself failed, or if the resources are\nnot available.  (The latter information is needed by CMP to synchronize\nrestoring of overlayed connections after a bus reset.)\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3a1f0a0e3d871e3d3e08a1429009992151becda8",
      "tree": "79bb6e3cb82e58310442c986d46077ad8ff2dddc",
      "parents": [
        "a2612cb16d4d8447793609cbdd2a2f4f156c0020"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 12 10:35:05 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 19:58:32 2010 +0200"
      },
      "message": "firewire: core: fix retries calculation in iso manage_channel()\n\nIf there is a permanent error condition when communicating with the IRM,\nafter the sixth error, the retry variable will be decremented to -1.\nIf, in this case, the bits in channels_mask are not yet exhausted, the\nnext channel is retried 2^32 times.\n\nTo fix this, check that retry is never decremented beyond zero.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2fed94c032316d89422d4abfca2a882897489b94",
      "tree": "9381c79a351d2c13f6b87bae550c51689491ded6",
      "parents": [
        "00eef7bd01c7598d195699983c5290d901df19ad",
        "19b3eecc21b65a24b0aae2684ca0c8e1b99ef802"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 15 11:56:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 15 11:56:20 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: cdev: change license of exported header files to MIT license\n  firewire: cdev: comment fixlet\n  firewire: cdev: iso packet documentation\n  firewire: cdev: fix information leak\n  firewire: cdev: require quadlet-aligned headers for transmit packets\n  firewire: cdev: disallow receive packets without header\n"
    },
    {
      "commit": "3ac26b2ee30005930117fe6a180c139c5f300faf",
      "tree": "5064fa443c3a9e3b7eec7dd4b264b0eae28d5c77",
      "parents": [
        "5da3dac8d99c9933f12286fd73fa18e26f768bea"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:38:05 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: cdev: mark char device files as not seekable\n\nThe \u003clinux/firewire-cdev.h\u003e character device file ABI (i.e. /dev/fw*\ncharacter device file interface) does not make any use of lseek(),\npread(), pwrite() (or any kind of write() at all).\n\nUse nonseekable_open() and, redundantly, set file_operations.llseek to\nno_llseek to remove any doubt whether the BKL-grabbing default_llseek\nhandler is used.  (Also shuffle file_operations initialization according\nto the order of handler definitions.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5da3dac8d99c9933f12286fd73fa18e26f768bea",
      "tree": "8db17c8e7996c92381920a0e97380a5adc8a6d7a",
      "parents": [
        "35d999b12037b5ea0152889232629c25d45b0e26"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 02 14:05:02 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: cleanups and fix for nonstandard build without debug facility\n\n1) Clean up two function names:  The ohci_ prefix is only used in names\nof fw_card_driver hooks.  There were two unnecessary exceptions.\n\n2) Replace empty macros by empty inline functions so that call parameter\ntype checking is available in #ifndef\u0027d builds.\n\n3) CONFIG_FIREWIRE_OHCI_DEBUG is currently a hidden kconfig variable,\nhence is not going to be switched off by anybody.  Still, it can be\nswitched off but then compilation will fail in ohci_enable() at the\nexpression param_debug \u0026 OHCI_PARAM_DEBUG_BUSRESETS.  Add the necessary\ndefinitions in the nonstandard case.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "35d999b12037b5ea0152889232629c25d45b0e26",
      "tree": "4c9838cd44e7f2539f986ff3acbe4c45ce12bc8e",
      "parents": [
        "54672386ccf36ffa21d1de8e75624af83f9b0eeb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:04:56 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: wait for PHY register accesses to complete\n\nRather than having the arbitrary msleep(2) pause, let read_phy_reg()\nloop until the link--phy access was finished.\n\nFactor write_phy_reg() out of ohci_update_phy_reg() and of\nread_paged_phy_reg() and let it loop too until the link--phy access was\nfinished.\n\nLike in the older ohci1394 driver, a timeout of 100 milliseconds is\nchosen.  Unlike the old driver, we sleep instead of busy-wait in each\nwaiting loop iteration.  Instead of a loop, the waiting could probably\nalso be implemented interrupt driven, but why bother.  It would require\nup and running interrupt handling before the link was fully configured\nand enabled.\n\nAlso modify functions a bit:  Error return and value return can be\ncombined in read_phy_reg() since the domain of values is only u8.\nLikewise in read_paged_phy_reg().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "54672386ccf36ffa21d1de8e75624af83f9b0eeb",
      "tree": "4151332eab6070ffcda77012a3afc99e15425b5b",
      "parents": [
        "925e7a6504966b838c519f009086982c68e0666f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Apr 01 16:43:59 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: fix up configuration of TI chips\n\nOn TI chips (OHCI-Lynx and later), enable link enhancements features\nthat TI recommends to be used.  None of these are required for proper\noperation, but they are safe and nice to have.\n\nIn theory, these bits should have been set by default, but in practice,\nsome BIOS/EEPROM writers apparently do not read the datasheet, or get\nspooked by names like \"unfair\".\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "925e7a6504966b838c519f009086982c68e0666f",
      "tree": "38ead3a8ae51b973156f6238f7c6b3800d3d7d46",
      "parents": [
        "e7014dada041982ae12ba7fd1967ca0ab0243e04"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Apr 04 15:19:54 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: enable 1394a enhancements\n\nThe OHCI spec says that, if the programPhyEnable bit is set, the driver\nis responsible for configuring the IEEE1394a enhancements within the PHY\nand the link consistently.  So do this.\n\nAlso add a quirk to allow disabling these enhancements; this is needed\nfor the TSB12LV22 where ack accelerations are buggy (erratum b).\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e7014dada041982ae12ba7fd1967ca0ab0243e04",
      "tree": "b82e8047c6f00cfdfd9254a9cdcb66867a673e74",
      "parents": [
        "4a96b4fcd6b35e9233df07b3c9ab38091edcfe7e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Apr 01 16:40:18 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: do not clear PHY interrupt status inadvertently\n\nThe interrupt status bits in PHY register 5 are cleared by writing a one\nbit.  To avoid clearing them unadvertently, do not write them back when\nthey were read as set, but only when they have been explicitly requested\nto be set.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4a96b4fcd6b35e9233df07b3c9ab38091edcfe7e",
      "tree": "9a1e7500b64d98845607266b8f15b7a5384aa60f",
      "parents": [
        "ca658b1e29d6be939207532e337fb640eb697f71"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Apr 04 15:19:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: add a function for reading PHY registers\n\nMove the register reading code from ohci_update_phy_reg() into\na function which can be used separately.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "9cac00b8f0079d5d3d54ec4dae453d58dec30e7c",
      "tree": "902b5f22c553395e5bab8c7561b996f19584e7f6",
      "parents": [
        "385ab5bcd4be586dffdba550b310308d89eade71"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Apr 07 08:30:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:13 2010 +0200"
      },
      "message": "firewire: cdev: fix information leak\n\nA userspace client got to see uninitialized stack-allocated memory if it\nspecified an _IOC_READ type of ioctl and an argument size larger than\nexpected by firewire-core\u0027s ioctl handlers (but not larger than the\ncore\u0027s union ioctl_arg).\n\nFix this by clearing the requested buffer size to zero, but only at _IOR\nioctls.  This way, there is almost no runtime penalty to legitimate\nioctls.  The only legitimate _IOR is FW_CDEV_IOC_GET_CYCLE_TIMER with 12\nor 16 bytes to memset.\n\n[Another way to fix this would be strict checking of argument size (and\npossibly direction) vs. command number.  However, we then need a lookup\ntable, and we need to allow for slight size deviations in case of 32bit\nuserland on 64bit kernel.]\n\nReported-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "385ab5bcd4be586dffdba550b310308d89eade71",
      "tree": "76b56fc42e4f11aeb4cfdcc6e98b16220927ca04",
      "parents": [
        "4ba1d9c0c22947a9207029e7184733252e6135f1"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Mar 31 16:26:46 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:13 2010 +0200"
      },
      "message": "firewire: cdev: require quadlet-aligned headers for transmit packets\n\nThe definition of struct fw_cdev_iso_packet seems to imply that the\nheader_length must be quadlet-aligned, and in fact, specifying an\nunaligned header has never really worked when using multiple packet\nstructures, because the position of the next control word is computed by\nrounding the header_length _down_, so the last one to three bytes of the\nheader would overlap the next control word.\n\nTo avoid this problem, check that the header length is properly aligned.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4ba1d9c0c22947a9207029e7184733252e6135f1",
      "tree": "7801ca5b28bfb50a1992483ebbf86b46471b05dc",
      "parents": [
        "fe43d6d9cf59d8f8cbfdcde2018de13ffd1285c7"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Mar 31 16:26:39 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:13 2010 +0200"
      },
      "message": "firewire: cdev: disallow receive packets without header\n\nIn receive contexts, reject packets with header_length\u003d\u003d0.  This would\nbe an instruction to queue zero packets which would not make sense.\n\nThis prevents a division by zero in the OHCI driver.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "50da56706b989b99edb20f9c03172df193240c78",
      "tree": "79c89c416bc2d5369a49320bfbc91a03f3957a44",
      "parents": [
        "e0df9c0b42cc8cb48b801f7a0f54382f6a89ca16",
        "fe43d6d9cf59d8f8cbfdcde2018de13ffd1285c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:07:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:07:46 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: core: align driver match with modalias\n  firewire: core: fix Model_ID in modalias\n  firewire: ohci: add cycle timer quirk for the TI TSB12LV22\n  firewire: core: fw_iso_resource_manage: fix error handling\n"
    },
    {
      "commit": "fe43d6d9cf59d8f8cbfdcde2018de13ffd1285c7",
      "tree": "4eb14adaa43b7746cd8e0bc5416281b5d3839f9c",
      "parents": [
        "5ae73518cb39dd81e641dfa7ce20751c853579e0"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 19 00:39:07 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 24 22:01:47 2010 +0100"
      },
      "message": "firewire: core: align driver match with modalias\n\nThe driver match strategy was:\n  - Match vendor/model/specifier/version of the unit directory.\n  - If that was a miss, match vendor from the root directory and\n    model/specifier/version of the unit directory.\n\nThis was inconsistent with how the modalias string was constructed\nuntil recently (take vendor/model from root directory and specifier/\nversion from unit directory).  It was also inconsistent with how it is\ndone since the parent commit:\n  - Use vendor/model/specifier/version of the unit directory if possible,\n  - fall back to one or more of vendor/model/specifier/version from the\n    root directory depending on which ones are not present at the unit\n    directory.\n\nFix this inconsistency by sharing the ROM scanner function between\nmodalias printer function and driver match function.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5ae73518cb39dd81e641dfa7ce20751c853579e0",
      "tree": "1ae10520855a21e7a470d3bfcdf1e0d67e81365c",
      "parents": [
        "8301b91ba0b2d15c86fdf5357efe7c04eb767a6e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 19 00:38:29 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 24 22:01:47 2010 +0100"
      },
      "message": "firewire: core: fix Model_ID in modalias\n\nThe modalias string of devices that represent units on a FireWire node\ndid not show Module_ID entries within unit directories.  This was\nbecause firewire-core searched only the root directory of the\nconfiguration ROM for a Model_ID entry.\n\nWe now search first the root directory, then the unit directory.  IOW\nhonor a unit directory\u0027s Model_ID if present, otherwise fall back to the\nroot directory\u0027s model ID (if present).\n\nFurthermore, apply the same change to Vendor_ID.  This had the same\nissue but it was less apparent because most devices provide Vendor_ID\nonly in the root directory.\n\nAnd finally, also use this strategy for the remaining two IDs in the\nmodalias, Specifier_ID and Version.  It does not actually make sense to\nlook for them elsewhere than in the unit directory because they are\nmandatory there.  However, a uniform search order simplifies the\nimplementation and has no adverse affect in practice.\n\nSide notes:\n  - The older counterpart of this, nodemgr.c of ieee1394, looked for\n    Vendor_ID first in the root directory, then in the unit directory,\n    and for Model_ID only in the unit directory.\n  - There is a single mainline driver which requires Vendor_ID and\n    Model_ID --- the firedtv driver.  This one worked because FireDTVs\n    provide Vendor_ID in the root directory and Model_ID identically in\n    root directory and unit directory.\n  - Apart from firedtv, there are currently no drivers known to me\n    (including userspace drivers) that look at the Vendor_ID or Model_ID\n    of the modalias.\n\nReported-by: Maciej Żenczykowski \u003czenczykowski@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8301b91ba0b2d15c86fdf5357efe7c04eb767a6e",
      "tree": "618f6ef4d1b4a35bba74af004a0aabdde4f315e2",
      "parents": [
        "cf36df6bfb49fd265a39f676bfc9718029fef160"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Mar 17 11:07:55 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 17 23:24:42 2010 +0100"
      },
      "message": "firewire: ohci: add cycle timer quirk for the TI TSB12LV22\n\nAmong the many entries in the TSB12LV22 errata list (TI literature\nnumber SLLS312) is the following:\n\n  PCI Slave reads of the Cycle Timer register may occasionally get an\n  incorrect value.\n  Software may be able to validate value by reading the register\n  multiple times rapidly and evaluating for a reasonable difference.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e (untested)\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (added #define)\n"
    },
    {
      "commit": "88393161210493e317ae391696ee8ef463cb3c23",
      "tree": "6ec81a50d0e8174b415d83948b48cbabd7e54ddb",
      "parents": [
        "932fb06b0898f5883200f1da2e00075f0d70ba9c"
      ],
      "author": {
        "name": "Thomas Weber",
        "email": "swirl@gmx.li",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "message": "Fix typos in comments\n\n[Ss]ytem \u003d\u003e [Ss]ystem\nudpate \u003d\u003e update\nparamters \u003d\u003e parameters\norginal \u003d\u003e original\n\nSigned-off-by: Thomas Weber \u003cswirl@gmx.li\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    }
  ],
  "next": "cf36df6bfb49fd265a39f676bfc9718029fef160"
}
