diff options
Diffstat (limited to 'arch/sparc64/kernel/ldc.c')
-rw-r--r-- | arch/sparc64/kernel/ldc.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/ldc.c b/arch/sparc64/kernel/ldc.c index 4cba28685967..dbb65b674a67 100644 --- a/arch/sparc64/kernel/ldc.c +++ b/arch/sparc64/kernel/ldc.c | |||
@@ -158,6 +158,10 @@ struct ldc_channel { | |||
158 | u8 mss; | 158 | u8 mss; |
159 | u8 state; | 159 | u8 state; |
160 | 160 | ||
161 | #define LDC_IRQ_NAME_MAX 32 | ||
162 | char rx_irq_name[LDC_IRQ_NAME_MAX]; | ||
163 | char tx_irq_name[LDC_IRQ_NAME_MAX]; | ||
164 | |||
161 | struct hlist_head mh_list; | 165 | struct hlist_head mh_list; |
162 | 166 | ||
163 | struct hlist_node list; | 167 | struct hlist_node list; |
@@ -1226,25 +1230,31 @@ EXPORT_SYMBOL(ldc_free); | |||
1226 | * state. This does not initiate a handshake, ldc_connect() does | 1230 | * state. This does not initiate a handshake, ldc_connect() does |
1227 | * that. | 1231 | * that. |
1228 | */ | 1232 | */ |
1229 | int ldc_bind(struct ldc_channel *lp) | 1233 | int ldc_bind(struct ldc_channel *lp, const char *name) |
1230 | { | 1234 | { |
1231 | unsigned long hv_err, flags; | 1235 | unsigned long hv_err, flags; |
1232 | int err = -EINVAL; | 1236 | int err = -EINVAL; |
1233 | 1237 | ||
1234 | spin_lock_irqsave(&lp->lock, flags); | 1238 | spin_lock_irqsave(&lp->lock, flags); |
1235 | 1239 | ||
1240 | if (!name) | ||
1241 | goto out_err; | ||
1242 | |||
1236 | if (lp->state != LDC_STATE_INIT) | 1243 | if (lp->state != LDC_STATE_INIT) |
1237 | goto out_err; | 1244 | goto out_err; |
1238 | 1245 | ||
1246 | snprintf(lp->rx_irq_name, LDC_IRQ_NAME_MAX, "%s RX", name); | ||
1247 | snprintf(lp->tx_irq_name, LDC_IRQ_NAME_MAX, "%s TX", name); | ||
1248 | |||
1239 | err = request_irq(lp->cfg.rx_irq, ldc_rx, | 1249 | err = request_irq(lp->cfg.rx_irq, ldc_rx, |
1240 | IRQF_SAMPLE_RANDOM | IRQF_SHARED, | 1250 | IRQF_SAMPLE_RANDOM | IRQF_SHARED, |
1241 | "LDC RX", lp); | 1251 | lp->rx_irq_name, lp); |
1242 | if (err) | 1252 | if (err) |
1243 | goto out_err; | 1253 | goto out_err; |
1244 | 1254 | ||
1245 | err = request_irq(lp->cfg.tx_irq, ldc_tx, | 1255 | err = request_irq(lp->cfg.tx_irq, ldc_tx, |
1246 | IRQF_SAMPLE_RANDOM | IRQF_SHARED, | 1256 | IRQF_SAMPLE_RANDOM | IRQF_SHARED, |
1247 | "LDC TX", lp); | 1257 | lp->tx_irq_name, lp); |
1248 | if (err) | 1258 | if (err) |
1249 | goto out_free_rx_irq; | 1259 | goto out_free_rx_irq; |
1250 | 1260 | ||