e1000: reset hardware before stopping
This commit is contained in:
parent
a87ec6840f
commit
d5210e9bdd
@ -47,7 +47,7 @@ _PROTOTYPE( PRIVATE void e1000_readv_s, (message *mp, int from_int) );
|
|||||||
_PROTOTYPE( PRIVATE void e1000_getstat_s, (message *mp) );
|
_PROTOTYPE( PRIVATE void e1000_getstat_s, (message *mp) );
|
||||||
_PROTOTYPE( PRIVATE void e1000_interrupt, (message *mp) );
|
_PROTOTYPE( PRIVATE void e1000_interrupt, (message *mp) );
|
||||||
_PROTOTYPE( PRIVATE int e1000_link_changed, (e1000_t *e) );
|
_PROTOTYPE( PRIVATE int e1000_link_changed, (e1000_t *e) );
|
||||||
_PROTOTYPE( PRIVATE void e1000_stop, (void) );
|
_PROTOTYPE( PRIVATE void e1000_stop, (e1000_t *e) );
|
||||||
_PROTOTYPE( PRIVATE uint32_t e1000_reg_read, (e1000_t *e, uint32_t reg) );
|
_PROTOTYPE( PRIVATE uint32_t e1000_reg_read, (e1000_t *e, uint32_t reg) );
|
||||||
_PROTOTYPE( PRIVATE void e1000_reg_write, (e1000_t *e, uint32_t reg,
|
_PROTOTYPE( PRIVATE void e1000_reg_write, (e1000_t *e, uint32_t reg,
|
||||||
uint32_t value) );
|
uint32_t value) );
|
||||||
@ -169,12 +169,15 @@ PRIVATE int sef_cb_init_fresh(int UNUSED(type), sef_init_info_t *UNUSED(info))
|
|||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
PRIVATE void sef_cb_signal_handler(int signo)
|
PRIVATE void sef_cb_signal_handler(int signo)
|
||||||
{
|
{
|
||||||
E1000_DEBUG(3, ("e1000: got signal\n"));
|
e1000_t *e;
|
||||||
|
e = &e1000_state;
|
||||||
|
|
||||||
|
E1000_DEBUG(3, ("%s: got signal\n", e->name));
|
||||||
|
|
||||||
/* Only check for termination signal, ignore anything else. */
|
/* Only check for termination signal, ignore anything else. */
|
||||||
if (signo != SIGTERM) return;
|
if (signo != SIGTERM) return;
|
||||||
|
|
||||||
e1000_stop();
|
e1000_stop(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
@ -862,9 +865,13 @@ e1000_t *e;
|
|||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
* e1000_stop *
|
* e1000_stop *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
PRIVATE void e1000_stop()
|
PRIVATE void e1000_stop(e)
|
||||||
|
e1000_t *e;
|
||||||
{
|
{
|
||||||
E1000_DEBUG(3, ("e1000: stop()\n"));
|
E1000_DEBUG(3, ("%s: stop()\n", e->name));
|
||||||
|
|
||||||
|
e1000_reset_hw(e);
|
||||||
|
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user