Commit 7b360ee0 authored by Thomas Pugliese's avatar Thomas Pugliese Committed by Greg Kroah-Hartman
Browse files

uwb: add error messages when reservation establish fails



Add better error messages during the channel change/reservation establish
process.

Signed-off-by: default avatarThomas Pugliese <thomas.pugliese@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 90ec00d5
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -125,8 +125,10 @@ int uwb_rc_beacon(struct uwb_rc *rc, int channel, unsigned bpst_offset)
	else {
		/* channel >= 0...dah */
		result = uwb_rc_start_beacon(rc, bpst_offset, channel);
		if (result < 0)
		if (result < 0) {
			dev_err(dev, "Cannot start beaconing: %d\n", result);
			return result;
		}
		if (le16_to_cpu(rc->ies->wIELength) > 0) {
			result = uwb_rc_set_ie(rc, rc->ies);
			if (result < 0) {
+12 −2
Original line number Diff line number Diff line
@@ -163,8 +163,10 @@ static int uwb_rsv_get_stream(struct uwb_rsv *rsv)
	}

	stream = find_first_zero_bit(streams_bm, UWB_NUM_STREAMS);
	if (stream >= UWB_NUM_STREAMS)
	if (stream >= UWB_NUM_STREAMS) {
		dev_err(dev, "%s: no available stream found\n", __func__);
		return -EBUSY;
	}

	rsv->stream = stream;
	set_bit(stream, streams_bm);
@@ -555,12 +557,16 @@ int uwb_rsv_establish(struct uwb_rsv *rsv)
{
	struct uwb_rc *rc = rsv->rc;
	struct uwb_mas_bm available;
	struct device *dev = &rc->uwb_dev.dev;
	int ret;

	mutex_lock(&rc->rsvs_mutex);
	ret = uwb_rsv_get_stream(rsv);
	if (ret)
	if (ret) {
		dev_err(dev, "%s: uwb_rsv_get_stream failed: %d\n",
			__func__, ret);
		goto out;
	}

	rsv->tiebreaker = prandom_u32() & 1;
	/* get available mas bitmap */
@@ -570,12 +576,16 @@ int uwb_rsv_establish(struct uwb_rsv *rsv)
	if (ret == UWB_RSV_ALLOC_NOT_FOUND) {
		ret = -EBUSY;
		uwb_rsv_put_stream(rsv);
		dev_err(dev, "%s: uwb_rsv_find_best_allocation failed: %d\n",
			__func__, ret);
		goto out;
	}

	ret = uwb_drp_avail_reserve_pending(rc, &rsv->mas);
	if (ret != 0) {
		uwb_rsv_put_stream(rsv);
		dev_err(dev, "%s: uwb_drp_avail_reserve_pending failed: %d\n",
			__func__, ret);
		goto out;
	}