caif-hsi: Fix merge issues.
Fix the failing merge in net-next by reverting the last net-next merge for caif_hsi.c and then merge in the commit: "caif-hsi: Bugfix - Piggyback'ed embedded CAIF frame lost" from the net repository. The commit:"caif-hsi: Add missing return in error path" from net repository was dropped, as it changed code previously removed in the net-next repository. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
3085a4b7d3
Коммит
7fa8ad6df7
|
@ -1131,51 +1131,7 @@ static void cfhsi_setup(struct net_device *dev)
|
|||
cfhsi->cfdev.use_stx = false;
|
||||
cfhsi->cfdev.use_fcs = false;
|
||||
cfhsi->ndev = dev;
|
||||
}
|
||||
|
||||
int cfhsi_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct cfhsi_ops *(*get_ops)(void);
|
||||
struct cfhsi *cfhsi = NULL;
|
||||
struct net_device *ndev;
|
||||
int res;
|
||||
|
||||
ndev = alloc_netdev(sizeof(struct cfhsi), "cfhsi%d", cfhsi_setup);
|
||||
if (!ndev)
|
||||
return -ENODEV;
|
||||
|
||||
cfhsi = netdev_priv(ndev);
|
||||
cfhsi->ndev = ndev;
|
||||
cfhsi->pdev = pdev;
|
||||
|
||||
get_ops = symbol_get(cfhsi_get_ops);
|
||||
if (!get_ops) {
|
||||
pr_err("%s: failed to get the cfhsi_ops\n", __func__);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* Assign the HSI device. */
|
||||
cfhsi->ops = (*get_ops)();
|
||||
if (!cfhsi->ops) {
|
||||
pr_err("%s: failed to get the cfhsi_ops\n", __func__);
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Assign the driver to this HSI device. */
|
||||
cfhsi->ops->cb_ops = &cfhsi->cb_ops;
|
||||
res = register_netdevice(ndev);
|
||||
if (res) {
|
||||
dev_err(&ndev->dev, "%s: Registration error: %d.\n",
|
||||
__func__, res);
|
||||
free_netdev(ndev);
|
||||
}
|
||||
/* Add CAIF HSI device to list. */
|
||||
list_add_tail(&cfhsi->list, &cfhsi_list);
|
||||
|
||||
return res;
|
||||
err:
|
||||
symbol_put(cfhsi_get_ops);
|
||||
return -ENODEV;
|
||||
cfhsi->cfg = hsi_default_config;
|
||||
}
|
||||
|
||||
static int cfhsi_open(struct net_device *ndev)
|
||||
|
@ -1454,6 +1410,7 @@ static int caif_hsi_newlink(struct net *src_net, struct net_device *dev,
|
|||
struct nlattr *tb[], struct nlattr *data[])
|
||||
{
|
||||
struct cfhsi *cfhsi = NULL;
|
||||
struct cfhsi_ops *(*get_ops)(void);
|
||||
|
||||
ASSERT_RTNL();
|
||||
|
||||
|
@ -1461,7 +1418,32 @@ static int caif_hsi_newlink(struct net *src_net, struct net_device *dev,
|
|||
cfhsi_netlink_parms(data, cfhsi);
|
||||
dev_net_set(cfhsi->ndev, src_net);
|
||||
|
||||
get_ops = symbol_get(cfhsi_get_ops);
|
||||
if (!get_ops) {
|
||||
pr_err("%s: failed to get the cfhsi_ops\n", __func__);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* Assign the HSI device. */
|
||||
cfhsi->ops = (*get_ops)();
|
||||
if (!cfhsi->ops) {
|
||||
pr_err("%s: failed to get the cfhsi_ops\n", __func__);
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Assign the driver to this HSI device. */
|
||||
cfhsi->ops->cb_ops = &cfhsi->cb_ops;
|
||||
if (register_netdevice(dev)) {
|
||||
pr_warn("%s: caif_hsi device registration failed\n", __func__);
|
||||
goto err;
|
||||
}
|
||||
/* Add CAIF HSI device to list. */
|
||||
list_add_tail(&cfhsi->list, &cfhsi_list);
|
||||
|
||||
return 0;
|
||||
err:
|
||||
symbol_put(cfhsi_get_ops);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static struct rtnl_link_ops caif_hsi_link_ops __read_mostly = {
|
||||
|
|
Загрузка…
Ссылка в новой задаче