dma.c (91de76e661a266731fc2889a398ad1694df9d523) dma.c (bcdc4bd356c76a5bab2f480a73f089dc8e0e4e89)
1/*
2 * Intel I/OAT DMA Linux driver
3 * Copyright(c) 2004 - 2015 Intel Corporation.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *

--- 460 unchanged lines hidden (view full) ---

469
470 /* progress reclaim in the allocation failure case we may be
471 * called under bh_disabled so we need to trigger the timer
472 * event directly
473 */
474 if (time_is_before_jiffies(ioat_chan->timer.expires)
475 && timer_pending(&ioat_chan->timer)) {
476 mod_timer(&ioat_chan->timer, jiffies + COMPLETION_TIMEOUT);
1/*
2 * Intel I/OAT DMA Linux driver
3 * Copyright(c) 2004 - 2015 Intel Corporation.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *

--- 460 unchanged lines hidden (view full) ---

469
470 /* progress reclaim in the allocation failure case we may be
471 * called under bh_disabled so we need to trigger the timer
472 * event directly
473 */
474 if (time_is_before_jiffies(ioat_chan->timer.expires)
475 && timer_pending(&ioat_chan->timer)) {
476 mod_timer(&ioat_chan->timer, jiffies + COMPLETION_TIMEOUT);
477 ioat_timer_event((unsigned long)ioat_chan);
477 ioat_timer_event(&ioat_chan->timer);
478 }
479
480 return -ENOMEM;
481}
482
483static bool desc_has_ext(struct ioat_ring_ent *desc)
484{
485 struct ioat_dma_descriptor *hw = desc->hw;

--- 371 unchanged lines hidden (view full) ---

857 mod_timer(&ioat_chan->timer, jiffies + COMPLETION_TIMEOUT);
858 return;
859 }
860
861 if (test_and_clear_bit(IOAT_CHAN_ACTIVE, &ioat_chan->state))
862 mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
863}
864
478 }
479
480 return -ENOMEM;
481}
482
483static bool desc_has_ext(struct ioat_ring_ent *desc)
484{
485 struct ioat_dma_descriptor *hw = desc->hw;

--- 371 unchanged lines hidden (view full) ---

857 mod_timer(&ioat_chan->timer, jiffies + COMPLETION_TIMEOUT);
858 return;
859 }
860
861 if (test_and_clear_bit(IOAT_CHAN_ACTIVE, &ioat_chan->state))
862 mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
863}
864
865void ioat_timer_event(unsigned long data)
865void ioat_timer_event(struct timer_list *t)
866{
866{
867 struct ioatdma_chan *ioat_chan = to_ioat_chan((void *)data);
867 struct ioatdma_chan *ioat_chan = from_timer(ioat_chan, t, timer);
868 dma_addr_t phys_complete;
869 u64 status;
870
871 status = ioat_chansts(ioat_chan);
872
873 /* when halted due to errors check for channel
874 * programming errors before advancing the completion state
875 */

--- 157 unchanged lines hidden ---
868 dma_addr_t phys_complete;
869 u64 status;
870
871 status = ioat_chansts(ioat_chan);
872
873 /* when halted due to errors check for channel
874 * programming errors before advancing the completion state
875 */

--- 157 unchanged lines hidden ---