Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3fd036b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "cnss: Initialize the unsafe channel list structure properly"

parents efc74393 d2d121bb
Loading
Loading
Loading
Loading
+5 −10
Original line number Diff line number Diff line
@@ -45,8 +45,6 @@ static struct cnss_dfs_nol_info {

int cnss_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count)
{
	struct cnss_unsafe_channel_list *unsafe_list;

	mutex_lock(&unsafe_channel_list_lock);
	if ((!unsafe_ch_list) || (ch_count > CNSS_MAX_CH_NUM)) {
		mutex_unlock(&unsafe_channel_list_lock);
@@ -57,7 +55,7 @@ int cnss_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count)

	if (ch_count != 0) {
		memcpy(
			(char *)unsafe_list->unsafe_ch_list,
			(char *)unsafe_channel_list.unsafe_ch_list,
			(char *)unsafe_ch_list, ch_count * sizeof(u16));
	}
	mutex_unlock(&unsafe_channel_list_lock);
@@ -70,25 +68,22 @@ int cnss_get_wlan_unsafe_channel(
			u16 *unsafe_ch_list,
			u16 *ch_count, u16 buf_len)
{
	struct cnss_unsafe_channel_list *unsafe_list;

	mutex_lock(&unsafe_channel_list_lock);
	if (!unsafe_ch_list || !ch_count) {
		mutex_unlock(&unsafe_channel_list_lock);
		return -EINVAL;
	}

	unsafe_list = &unsafe_channel_list;
	if (buf_len < (unsafe_list->unsafe_ch_count * sizeof(u16))) {
	if (buf_len < (unsafe_channel_list.unsafe_ch_count * sizeof(u16))) {
		mutex_unlock(&unsafe_channel_list_lock);
		return -ENOMEM;
	}

	*ch_count = unsafe_list->unsafe_ch_count;
	*ch_count = unsafe_channel_list.unsafe_ch_count;
	memcpy(
		(char *)unsafe_ch_list,
		(char *)unsafe_list->unsafe_ch_list,
		unsafe_list->unsafe_ch_count * sizeof(u16));
		(char *)unsafe_channel_list.unsafe_ch_list,
		unsafe_channel_list.unsafe_ch_count * sizeof(u16));
	mutex_unlock(&unsafe_channel_list_lock);

	return 0;