From b1f57595bd978aa9574fbde2f2461e09d2ebf23e Mon Sep 17 00:00:00 2001 From: Kano Date: Sat, 10 Aug 2013 10:12:15 +1000 Subject: [PATCH] avalon init write_sem before use --- driver-avalon.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/driver-avalon.c b/driver-avalon.c index aec768eb..752c49f1 100644 --- a/driver-avalon.c +++ b/driver-avalon.c @@ -709,9 +709,11 @@ static bool avalon_detect_one(libusb_device *dev, struct usb_find_devices *found if (!add_cgpu(avalon)) goto unshin; + cgsem_init(&info->write_sem); + ret = avalon_reset(avalon, true); if (ret && !configured) - goto unshin; + goto unshinsem; update_usb_stats(avalon); @@ -735,6 +737,10 @@ static bool avalon_detect_one(libusb_device *dev, struct usb_find_devices *found return true; +unshinsem: + + cgsem_destroy(&info->write_sem); + unshin: usb_uninit(avalon); @@ -1079,7 +1085,6 @@ static bool avalon_prepare(struct thr_info *thr) mutex_init(&info->qlock); if (unlikely(pthread_cond_init(&info->qcond, NULL))) quit(1, "Failed to pthread_cond_init avalon qcond"); - cgsem_init(&info->write_sem); if (pthread_create(&info->read_thr, NULL, avalon_get_results, (void *)avalon)) quit(1, "Failed to create avalon read_thr");