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 --- |