)]}'
{
  "commit": "736cd79f483fd7a1e0b71e6eaddf01d8d87fbbbb",
  "tree": "035da7625ec0f5022a53d9346ee968cf9ff33541",
  "parents": [
    "81ccb2a69f76b88295a1da9fc9484df715fe3bfa"
  ],
  "author": {
    "name": "Robert Baldyga",
    "email": "r.baldyga@samsung.com",
    "time": "Fri Jul 31 10:58:28 2015 +0200"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Tue Aug 04 22:07:24 2015 -0700"
  },
  "message": "serial: samsung: fix DMA for FIFO smaller than cache line size\n\nSo far DMA mode were activated when only number of bytes to send was\nequal or greater than min_dma_size. Due to requirement that DMA transaction\nbuffer should be aligned to cache line size, the excessive bytes were\nwritten to FIFO before starting DMA transaction. The problem occurred\nwhen FIFO size were smaller than cache alignment, because writing all\nexcessive bytes to FIFO would fail. It happened in DMA mode when PIO\ninterrupts disabled, which caused driver hung.\n\nThe solution is to test if buffer is alligned to cache line size before\nactivating DMA mode, and if it\u0027s not, running PIO mode to align buffer\nand then starting DMA transaction. In PIO mode, when interrupts are\nenabled, lack of space in FIFO isn\u0027t the problem, so buffer aligning\nwill always finish with success.\n\nCc: \u003cstable@vger.kernel.org\u003e # v3.18+\nReported-by: Krzysztof Kozlowski \u003ck.kozlowski@samsung.com\u003e\nSigned-off-by: Robert Baldyga \u003cr.baldyga@samsung.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "faee021c27b033a1d3ccb9516459e88cc45899e7",
      "old_mode": 33188,
      "old_path": "drivers/tty/serial/samsung.c",
      "new_id": "856686d6dcdbc61adbadc5ae6c0d86dbdf2c18d9",
      "new_mode": 33188,
      "new_path": "drivers/tty/serial/samsung.c"
    }
  ]
}
