aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Chapman <jchapman@katalix.com>2010-04-02 02:18:39 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-03 17:56:02 -0400
commit63f96072f9ba430aa348bc987c3d5a4f48bae301 (patch)
tree7c210e4a03f09c12f302a8f4800e1258660c1068
parentfd558d186df2c13a22455373858bae634a4795af (diff)
ppp: Add ppp_dev_name() exported function
ppp_dev_name() gives PPP users visibility of a ppp channel's device name. This can be used by L2TP drivers to dump the assigned PPP interface name. Signed-off-by: James Chapman <jchapman@katalix.com> Reviewed-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ppp_generic.c19
-rw-r--r--include/linux/ppp_channel.h3
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
index 6d61602208c1..8a0dd8a843a9 100644
--- a/drivers/net/ppp_generic.c
+++ b/drivers/net/ppp_generic.c
@@ -2163,6 +2163,24 @@ int ppp_unit_number(struct ppp_channel *chan)
2163} 2163}
2164 2164
2165/* 2165/*
2166 * Return the PPP device interface name of a channel.
2167 */
2168char *ppp_dev_name(struct ppp_channel *chan)
2169{
2170 struct channel *pch = chan->ppp;
2171 char *name = NULL;
2172
2173 if (pch) {
2174 read_lock_bh(&pch->upl);
2175 if (pch->ppp && pch->ppp->dev)
2176 name = pch->ppp->dev->name;
2177 read_unlock_bh(&pch->upl);
2178 }
2179 return name;
2180}
2181
2182
2183/*
2166 * Disconnect a channel from the generic layer. 2184 * Disconnect a channel from the generic layer.
2167 * This must be called in process context. 2185 * This must be called in process context.
2168 */ 2186 */
@@ -2890,6 +2908,7 @@ EXPORT_SYMBOL(ppp_register_channel);
2890EXPORT_SYMBOL(ppp_unregister_channel); 2908EXPORT_SYMBOL(ppp_unregister_channel);
2891EXPORT_SYMBOL(ppp_channel_index); 2909EXPORT_SYMBOL(ppp_channel_index);
2892EXPORT_SYMBOL(ppp_unit_number); 2910EXPORT_SYMBOL(ppp_unit_number);
2911EXPORT_SYMBOL(ppp_dev_name);
2893EXPORT_SYMBOL(ppp_input); 2912EXPORT_SYMBOL(ppp_input);
2894EXPORT_SYMBOL(ppp_input_error); 2913EXPORT_SYMBOL(ppp_input_error);
2895EXPORT_SYMBOL(ppp_output_wakeup); 2914EXPORT_SYMBOL(ppp_output_wakeup);
diff --git a/include/linux/ppp_channel.h b/include/linux/ppp_channel.h
index 0d3fa63e90ea..bff98ec1bfed 100644
--- a/include/linux/ppp_channel.h
+++ b/include/linux/ppp_channel.h
@@ -72,6 +72,9 @@ extern int ppp_channel_index(struct ppp_channel *);
72/* Get the unit number associated with a channel, or -1 if none */ 72/* Get the unit number associated with a channel, or -1 if none */
73extern int ppp_unit_number(struct ppp_channel *); 73extern int ppp_unit_number(struct ppp_channel *);
74 74
75/* Get the device name associated with a channel, or NULL if none */
76extern char *ppp_dev_name(struct ppp_channel *);
77
75/* 78/*
76 * SMP locking notes: 79 * SMP locking notes:
77 * The channel code must ensure that when it calls ppp_unregister_channel, 80 * The channel code must ensure that when it calls ppp_unregister_channel,