dsa: Add stub tag driver put method

When a DSA switch driver is unloaded, the lock on the tag driver
should be released so the module can be unloaded. Add the needed calls,
but leave the actual release code as a stub.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>

v2

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Andrew Lunn 2019-04-28 19:37:19 +02:00 committed by David S. Miller
parent c39e2a1d71
commit 4dad81ee14
4 changed files with 9 additions and 0 deletions

View File

@ -137,6 +137,10 @@ const struct dsa_device_ops *dsa_tag_driver_get(int tag_protocol)
return ops;
}
void dsa_tag_driver_put(const struct dsa_device_ops *ops)
{
}
static int dev_is_class(struct device *dev, void *class)
{
if (dev->class != NULL && !strcmp(dev->class->name, class))

View File

@ -335,6 +335,8 @@ static void dsa_port_teardown(struct dsa_port *dp)
case DSA_PORT_TYPE_UNUSED:
break;
case DSA_PORT_TYPE_CPU:
dsa_tag_driver_put(dp->tag_ops);
/* fall-through */
case DSA_PORT_TYPE_DSA:
dsa_port_link_unregister_of(dp);
break;

View File

@ -85,6 +85,7 @@ struct dsa_slave_priv {
/* dsa.c */
const struct dsa_device_ops *dsa_tag_driver_get(int tag_protocol);
void dsa_tag_driver_put(const struct dsa_device_ops *ops);
bool dsa_schedule_work(struct work_struct *work);
const char *dsa_tag_protocol_to_str(const struct dsa_device_ops *ops);

View File

@ -163,6 +163,8 @@ static int dsa_switch_setup_one(struct dsa_switch *ds,
dst->cpu_dp->dst = dst;
}
dsa_tag_driver_put(dst->cpu_dp->tag_ops);
memcpy(ds->rtable, cd->rtable, sizeof(ds->rtable));
/*