wcte12xp: Limit how many consecutive times to reset the VPMADT032 module.
Both limit the amount of junk in the kernel log and also prevent dahdi_cfg from running indefinitely if there is a module with a hardware problem which prevents it from completing the startup sequence. Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9953 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
parent
778623eeff
commit
712e65f0dc
@ -2145,6 +2145,16 @@ static void vpm_check_func(struct work_struct *work)
|
||||
#endif
|
||||
int res;
|
||||
u16 version;
|
||||
const int MAX_CHECKS = 5;
|
||||
|
||||
/* If there is a failed VPM module, do not block dahdi_cfg
|
||||
* indefinitely. */
|
||||
if (++wc->vpm_check_count > MAX_CHECKS) {
|
||||
set_bit(READY, &wc->bit_flags);
|
||||
wc->vpm_check = MAX_JIFFY_OFFSET;
|
||||
t1_info(wc, "Disabling VPMADT032 Checking.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!test_bit(INITIALIZED, &wc->bit_flags))
|
||||
return;
|
||||
@ -2154,6 +2164,7 @@ static void vpm_check_func(struct work_struct *work)
|
||||
if (!res) {
|
||||
set_bit(VPM150M_ACTIVE, &wc->ctlreg);
|
||||
wc->vpm_check = jiffies + HZ*5;
|
||||
wc->vpm_check_count = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -115,6 +115,7 @@ struct t1 {
|
||||
unsigned long bit_flags;
|
||||
unsigned long alarmtimer;
|
||||
unsigned char ledstate;
|
||||
unsigned char vpm_check_count;
|
||||
struct dahdi_span span; /* Span */
|
||||
struct dahdi_chan *chans[32]; /* Channels */
|
||||
struct dahdi_echocan_state *ec[32]; /* Echocan state for channels */
|
||||
|
Loading…
Reference in New Issue
Block a user