diff options
author | Garrett D'Amore <garrett@nexenta.com> | 2010-11-07 20:18:24 -0800 |
---|---|---|
committer | Garrett D'Amore <garrett@nexenta.com> | 2010-11-07 20:18:24 -0800 |
commit | 0a96f64e3185cf2fb9959e528ba7f454ca681484 (patch) | |
tree | 320d44d7d570ee3ea07e8141f47b57741187999a /usr/src | |
parent | 1b1b6fbd07b95cdbe86f7b731a2fc22050bb8ae8 (diff) | |
download | illumos-joyent-0a96f64e3185cf2fb9959e528ba7f454ca681484.tar.gz |
401 sdcard hang
Reviewed by: jason.brian.king@gmail.com
Approved by: gwr@nexenta.com
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/io/sdcard/impl/sda_slot.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/usr/src/uts/common/io/sdcard/impl/sda_slot.c b/usr/src/uts/common/io/sdcard/impl/sda_slot.c index feffeb5c17..a32309243c 100644 --- a/usr/src/uts/common/io/sdcard/impl/sda_slot.c +++ b/usr/src/uts/common/io/sdcard/impl/sda_slot.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright 2010 Nexenta Systems, Inc. All rights reserved. */ /* @@ -383,12 +384,14 @@ sda_slot_handle_detect(sda_slot_t *slot) * hipri commands for now. */ slot->s_init = B_TRUE; + sda_slot_exit(slot); /* * Card insertion occurred. We have to run this on * another task, to avoid deadlock as the task may * need to dispatch commands. */ + (void) ddi_taskq_dispatch(slot->s_hp_tq, sda_slot_insert, slot, DDI_SLEEP); } else { @@ -405,9 +408,10 @@ sda_slot_handle_detect(sda_slot_t *slot) sda_slot_reset(slot); slot->s_intransit = 0; + sda_slot_exit(slot); + bd_state_change(slot->s_bdh); } - sda_slot_exit(slot); sda_slot_wakeup(slot); } |