IB/qib: Prevent driver hang with unprogrammed boards

The time limit test now correctly checks against current jiffies to
avoid the hang.

Signed-off-by: Mitko Haralanov <mitko@qlogic.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
Mitko Haralanov 2011-05-09 22:07:31 -07:00 коммит произвёл Roland Dreier
Родитель 693d92a1bb
Коммит 9f5754e34b
1 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -7534,7 +7534,8 @@ static int serdes_7322_init_new(struct qib_pportdata *ppd)
ibsd_wr_allchans(ppd, 4, (1 << 10), BMASK(10, 10)); ibsd_wr_allchans(ppd, 4, (1 << 10), BMASK(10, 10));
tstart = get_jiffies_64(); tstart = get_jiffies_64();
while (chan_done && while (chan_done &&
!time_after64(tstart, tstart + msecs_to_jiffies(500))) { !time_after64(get_jiffies_64(),
tstart + msecs_to_jiffies(500))) {
msleep(20); msleep(20);
for (chan = 0; chan < SERDES_CHANS; ++chan) { for (chan = 0; chan < SERDES_CHANS; ++chan) {
rxcaldone = ahb_mod(ppd->dd, IBSD(ppd->hw_pidx), rxcaldone = ahb_mod(ppd->dd, IBSD(ppd->hw_pidx),