Browse Source

Fix potential memory leak with unused work items in bflsc_queue_full

nfactor-troky
Con Kolivas 12 years ago
parent
commit
5d8273a399
  1. 19
      driver-bflsc.c

19
driver-bflsc.c

@ -1403,7 +1403,7 @@ re_send:
static bool bflsc_queue_full(struct cgpu_info *bflsc) static bool bflsc_queue_full(struct cgpu_info *bflsc)
{ {
struct bflsc_info *sc_info = (struct bflsc_info *)(bflsc->device_file); struct bflsc_info *sc_info = (struct bflsc_info *)(bflsc->device_file);
struct work *work; struct work *work = NULL;
int i, dev, tried, que; int i, dev, tried, que;
bool ret = false; bool ret = false;
int tries = 0; int tries = 0;
@ -1449,16 +1449,19 @@ static bool bflsc_queue_full(struct cgpu_info *bflsc)
break; break;
} }
work = get_queued(bflsc); if (!work)
if (work) { work = get_queued(bflsc);
if (bflsc_send_work(bflsc, dev, work)) if (unlikely(!work))
break; break;
else if (bflsc_send_work(bflsc, dev, work)) {
tried = dev; work = NULL;
} else
break; break;
} else
tried = dev;
} }
if (unlikely(work))
work_completed(bflsc, work);
return ret; return ret;
} }

Loading…
Cancel
Save