Merge branch 'linux-2.6.30.y' of git://git.kernel.org/pub/scm/linux/kernel/git/inaky/wimax
This commit is contained in:
commit
a860820dce
|
@ -149,7 +149,8 @@ struct sk_buff *wimax_msg_alloc(struct wimax_dev *wimax_dev,
|
||||||
}
|
}
|
||||||
result = nla_put(skb, WIMAX_GNL_MSG_DATA, size, msg);
|
result = nla_put(skb, WIMAX_GNL_MSG_DATA, size, msg);
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
dev_err(dev, "no memory to add payload in attribute\n");
|
dev_err(dev, "no memory to add payload (msg %p size %zu) in "
|
||||||
|
"attribute: %d\n", msg, size, result);
|
||||||
goto error_nla_put;
|
goto error_nla_put;
|
||||||
}
|
}
|
||||||
genlmsg_end(skb, genl_msg);
|
genlmsg_end(skb, genl_msg);
|
||||||
|
@ -299,10 +300,10 @@ int wimax_msg(struct wimax_dev *wimax_dev, const char *pipe_name,
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
|
||||||
skb = wimax_msg_alloc(wimax_dev, pipe_name, buf, size, gfp_flags);
|
skb = wimax_msg_alloc(wimax_dev, pipe_name, buf, size, gfp_flags);
|
||||||
if (skb == NULL)
|
if (IS_ERR(skb))
|
||||||
goto error_msg_new;
|
result = PTR_ERR(skb);
|
||||||
result = wimax_msg_send(wimax_dev, skb);
|
else
|
||||||
error_msg_new:
|
result = wimax_msg_send(wimax_dev, skb);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(wimax_msg);
|
EXPORT_SYMBOL_GPL(wimax_msg);
|
||||||
|
|
|
@ -338,8 +338,21 @@ out:
|
||||||
*/
|
*/
|
||||||
void wimax_state_change(struct wimax_dev *wimax_dev, enum wimax_st new_state)
|
void wimax_state_change(struct wimax_dev *wimax_dev, enum wimax_st new_state)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* A driver cannot take the wimax_dev out of the
|
||||||
|
* __WIMAX_ST_NULL state unless by calling wimax_dev_add(). If
|
||||||
|
* the wimax_dev's state is still NULL, we ignore any request
|
||||||
|
* to change its state because it means it hasn't been yet
|
||||||
|
* registered.
|
||||||
|
*
|
||||||
|
* There is no need to complain about it, as routines that
|
||||||
|
* call this might be shared from different code paths that
|
||||||
|
* are called before or after wimax_dev_add() has done its
|
||||||
|
* job.
|
||||||
|
*/
|
||||||
mutex_lock(&wimax_dev->mutex);
|
mutex_lock(&wimax_dev->mutex);
|
||||||
__wimax_state_change(wimax_dev, new_state);
|
if (wimax_dev->state > __WIMAX_ST_NULL)
|
||||||
|
__wimax_state_change(wimax_dev, new_state);
|
||||||
mutex_unlock(&wimax_dev->mutex);
|
mutex_unlock(&wimax_dev->mutex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -376,7 +389,7 @@ EXPORT_SYMBOL_GPL(wimax_state_get);
|
||||||
void wimax_dev_init(struct wimax_dev *wimax_dev)
|
void wimax_dev_init(struct wimax_dev *wimax_dev)
|
||||||
{
|
{
|
||||||
INIT_LIST_HEAD(&wimax_dev->id_table_node);
|
INIT_LIST_HEAD(&wimax_dev->id_table_node);
|
||||||
__wimax_state_set(wimax_dev, WIMAX_ST_UNINITIALIZED);
|
__wimax_state_set(wimax_dev, __WIMAX_ST_NULL);
|
||||||
mutex_init(&wimax_dev->mutex);
|
mutex_init(&wimax_dev->mutex);
|
||||||
mutex_init(&wimax_dev->mutex_reset);
|
mutex_init(&wimax_dev->mutex_reset);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue