Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: pmcraid: Convert timers to use timer_setup()

In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.

Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>

+13 -20
+13 -20
drivers/scsi/pmcraid.c
··· 348 348 cmd->sense_buffer = NULL; 349 349 cmd->sense_buffer_dma = 0; 350 350 cmd->dma_handle = 0; 351 - init_timer(&cmd->timer); 351 + timer_setup(&cmd->timer, NULL, 0); 352 352 } 353 353 354 354 /** ··· 557 557 558 558 static void pmcraid_ioa_reset(struct pmcraid_cmd *); 559 559 560 - static void pmcraid_bist_done(struct pmcraid_cmd *cmd) 560 + static void pmcraid_bist_done(struct timer_list *t) 561 561 { 562 + struct pmcraid_cmd *cmd = from_timer(cmd, t, timer); 562 563 struct pmcraid_instance *pinstance = cmd->drv_inst; 563 564 unsigned long lock_flags; 564 565 int rc; ··· 573 572 pmcraid_info("BIST not complete, waiting another 2 secs\n"); 574 573 cmd->timer.expires = jiffies + cmd->time_left; 575 574 cmd->time_left = 0; 576 - cmd->timer.data = (unsigned long)cmd; 577 - cmd->timer.function = 578 - (void (*)(unsigned long))pmcraid_bist_done; 579 575 add_timer(&cmd->timer); 580 576 } else { 581 577 cmd->time_left = 0; ··· 603 605 doorbells, intrs); 604 606 605 607 cmd->time_left = msecs_to_jiffies(PMCRAID_BIST_TIMEOUT); 606 - cmd->timer.data = (unsigned long)cmd; 607 608 cmd->timer.expires = jiffies + msecs_to_jiffies(PMCRAID_BIST_TIMEOUT); 608 - cmd->timer.function = (void (*)(unsigned long))pmcraid_bist_done; 609 + cmd->timer.function = (TIMER_FUNC_TYPE)pmcraid_bist_done; 609 610 add_timer(&cmd->timer); 610 611 } 611 612 ··· 614 617 * Return value 615 618 * None 616 619 */ 617 - static void pmcraid_reset_alert_done(struct pmcraid_cmd *cmd) 620 + static void pmcraid_reset_alert_done(struct timer_list *t) 618 621 { 622 + struct pmcraid_cmd *cmd = from_timer(cmd, t, timer); 619 623 struct pmcraid_instance *pinstance = cmd->drv_inst; 620 624 u32 status = ioread32(pinstance->ioa_status); 621 625 unsigned long lock_flags; ··· 635 637 pmcraid_info("critical op is not yet reset waiting again\n"); 636 638 /* restart timer if some more time is available to wait */ 637 639 cmd->time_left -= PMCRAID_CHECK_FOR_RESET_TIMEOUT; 638 - cmd->timer.data = (unsigned long)cmd; 639 640 cmd->timer.expires = jiffies + PMCRAID_CHECK_FOR_RESET_TIMEOUT; 640 - cmd->timer.function = 641 - (void (*)(unsigned long))pmcraid_reset_alert_done; 641 + cmd->timer.function = (TIMER_FUNC_TYPE)pmcraid_reset_alert_done; 642 642 add_timer(&cmd->timer); 643 643 } 644 644 } ··· 672 676 * bit to be reset. 673 677 */ 674 678 cmd->time_left = PMCRAID_RESET_TIMEOUT; 675 - cmd->timer.data = (unsigned long)cmd; 676 679 cmd->timer.expires = jiffies + PMCRAID_CHECK_FOR_RESET_TIMEOUT; 677 - cmd->timer.function = 678 - (void (*)(unsigned long))pmcraid_reset_alert_done; 680 + cmd->timer.function = (TIMER_FUNC_TYPE)pmcraid_reset_alert_done; 679 681 add_timer(&cmd->timer); 680 682 681 683 iowrite32(DOORBELL_IOA_RESET_ALERT, ··· 698 704 * Return value: 699 705 * None 700 706 */ 701 - static void pmcraid_timeout_handler(struct pmcraid_cmd *cmd) 707 + static void pmcraid_timeout_handler(struct timer_list *t) 702 708 { 709 + struct pmcraid_cmd *cmd = from_timer(cmd, t, timer); 703 710 struct pmcraid_instance *pinstance = cmd->drv_inst; 704 711 unsigned long lock_flags; 705 712 ··· 914 919 struct pmcraid_cmd *cmd, 915 920 void (*cmd_done) (struct pmcraid_cmd *), 916 921 unsigned long timeout, 917 - void (*timeout_func) (struct pmcraid_cmd *) 922 + void (*timeout_func) (struct timer_list *) 918 923 ) 919 924 { 920 925 /* initialize done function */ ··· 922 927 923 928 if (timeout_func) { 924 929 /* setup timeout handler */ 925 - cmd->timer.data = (unsigned long)cmd; 926 930 cmd->timer.expires = jiffies + timeout; 927 - cmd->timer.function = (void (*)(unsigned long))timeout_func; 931 + cmd->timer.function = (TIMER_FUNC_TYPE)timeout_func; 928 932 add_timer(&cmd->timer); 929 933 } 930 934 ··· 1949 1955 * would re-initiate a reset 1950 1956 */ 1951 1957 cmd->cmd_done = pmcraid_ioa_reset; 1952 - cmd->timer.data = (unsigned long)cmd; 1953 1958 cmd->timer.expires = jiffies + 1954 1959 msecs_to_jiffies(PMCRAID_TRANSOP_TIMEOUT); 1955 - cmd->timer.function = (void (*)(unsigned long))pmcraid_timeout_handler; 1960 + cmd->timer.function = (TIMER_FUNC_TYPE)pmcraid_timeout_handler; 1956 1961 1957 1962 if (!timer_pending(&cmd->timer)) 1958 1963 add_timer(&cmd->timer);