summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/dvb-core
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/dvb-core')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_net.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_net.c b/linux/drivers/media/dvb/dvb-core/dvb_net.c
index 707ad80ab..64977ba4b 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_net.c
@@ -123,7 +123,7 @@ static void hexdump( const unsigned char *buf, unsigned short len )
struct dvb_net_priv {
int in_use;
struct net_device_stats stats;
- char name[6];
+ char name[7];
u16 pid;
struct dvb_net *host;
struct dmx_demux *demux;
@@ -1157,19 +1157,29 @@ static int dvb_net_add_if(struct dvb_net *dvbnet, u16 pid, u8 feedtype)
struct dvb_net_priv *priv;
int result;
int if_num;
-
+ char name[20];
+
+ memset(name, 0, sizeof(name));
+
if (feedtype != DVB_NET_FEEDTYPE_MPE && feedtype != DVB_NET_FEEDTYPE_ULE)
return -EINVAL;
if ((if_num = get_if(dvbnet)) < 0)
return -EINVAL;
- net = alloc_netdev(sizeof(struct dvb_net_priv), "dvb",
+ sprintf(name, "dvb%1d%1d%1d",
+ dvbnet->dvbdev->adapter->num, dvbnet->dvbdev->id, if_num);
+ /* compatibility fix to keep dvb0_0 format */
+ if(name[4] == '0')
+ name[4] = '_';
+
+ net = alloc_netdev(sizeof(struct dvb_net_priv), name,
dvb_net_setup);
if (!net)
return -ENOMEM;
- sprintf(net->name, "dvb%d_%d", dvbnet->dvbdev->adapter->num, if_num);
-
+ sprintf(net->name, "%s", name);
+ printk("dvb_net: created network interface %s\n", net->name);
+
net->addr_len = 6;
memcpy(net->dev_addr, dvbnet->dvbdev->adapter->proposed_mac, 6);
@@ -1211,6 +1221,7 @@ static int dvb_net_remove_if(struct dvb_net *dvbnet, unsigned int num)
dvb_net_stop(net);
flush_scheduled_work();
+ printk("dvb_net: removed network interface %s\n", net->name);
unregister_netdev(net);
dvbnet->state[num]=0;
dvbnet->device[num] = NULL;