Commit a8147d737bd37bd51bb01737ac9c17a2cfc02a38

Authored by Joe Perches
Committed by David S. Miller
1 parent e956ea1b7d

net/atm/common.c: checkpatch cleanups

Convert #include <asm... to #include <linux...
Move EXPORT_SYMBOL
Spacing cleanups
Use __func__ in printks
Indent switch/case statements
Move trailing statements to new line
Hoist assigns from if tests

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 173 additions and 165 deletions Side-by-side Diff

... ... @@ -19,12 +19,11 @@
19 19 #include <linux/bitops.h>
20 20 #include <linux/init.h>
21 21 #include <net/sock.h> /* struct sock */
  22 +#include <linux/uaccess.h>
  23 +#include <linux/poll.h>
22 24  
23   -#include <asm/uaccess.h>
24 25 #include <asm/atomic.h>
25   -#include <asm/poll.h>
26 26  
27   -
28 27 #include "resources.h" /* atm_find_dev */
29 28 #include "common.h" /* prototypes */
30 29 #include "protocols.h" /* atm_init_<transport> */
31 30  
32 31  
... ... @@ -32,13 +31,15 @@
32 31 #include "signaling.h" /* for WAITING and sigd_attach */
33 32  
34 33 struct hlist_head vcc_hash[VCC_HTABLE_SIZE];
  34 +EXPORT_SYMBOL(vcc_hash);
  35 +
35 36 DEFINE_RWLOCK(vcc_sklist_lock);
  37 +EXPORT_SYMBOL(vcc_sklist_lock);
36 38  
37 39 static void __vcc_insert_socket(struct sock *sk)
38 40 {
39 41 struct atm_vcc *vcc = atm_sk(sk);
40   - struct hlist_head *head = &vcc_hash[vcc->vci &
41   - (VCC_HTABLE_SIZE - 1)];
  42 + struct hlist_head *head = &vcc_hash[vcc->vci & (VCC_HTABLE_SIZE - 1)];
42 43 sk->sk_hash = vcc->vci & (VCC_HTABLE_SIZE - 1);
43 44 sk_add_node(sk, head);
44 45 }
... ... @@ -49,6 +50,7 @@
49 50 __vcc_insert_socket(sk);
50 51 write_unlock_irq(&vcc_sklist_lock);
51 52 }
  53 +EXPORT_SYMBOL(vcc_insert_socket);
52 54  
53 55 static void vcc_remove_socket(struct sock *sk)
54 56 {
... ... @@ -57,8 +59,7 @@
57 59 write_unlock_irq(&vcc_sklist_lock);
58 60 }
59 61  
60   -
61   -static struct sk_buff *alloc_tx(struct atm_vcc *vcc,unsigned int size)
  62 +static struct sk_buff *alloc_tx(struct atm_vcc *vcc, unsigned int size)
62 63 {
63 64 struct sk_buff *skb;
64 65 struct sock *sk = sk_atm(vcc);
65 66  
66 67  
67 68  
... ... @@ -70,23 +71,20 @@
70 71 }
71 72 while (!(skb = alloc_skb(size, GFP_KERNEL)))
72 73 schedule();
73   - pr_debug("AlTx %d += %d\n", sk_wmem_alloc_get(sk), skb->truesize);
  74 + pr_debug("%d += %d\n", sk_wmem_alloc_get(sk), skb->truesize);
74 75 atomic_add(skb->truesize, &sk->sk_wmem_alloc);
75 76 return skb;
76 77 }
77 78  
78   -
79   -EXPORT_SYMBOL(vcc_hash);
80   -EXPORT_SYMBOL(vcc_sklist_lock);
81   -EXPORT_SYMBOL(vcc_insert_socket);
82   -
83 79 static void vcc_sock_destruct(struct sock *sk)
84 80 {
85 81 if (atomic_read(&sk->sk_rmem_alloc))
86   - printk(KERN_DEBUG "vcc_sock_destruct: rmem leakage (%d bytes) detected.\n", atomic_read(&sk->sk_rmem_alloc));
  82 + printk(KERN_DEBUG "%s: rmem leakage (%d bytes) detected.\n",
  83 + __func__, atomic_read(&sk->sk_rmem_alloc));
87 84  
88 85 if (atomic_read(&sk->sk_wmem_alloc))
89   - printk(KERN_DEBUG "vcc_sock_destruct: wmem leakage (%d bytes) detected.\n", atomic_read(&sk->sk_wmem_alloc));
  86 + printk(KERN_DEBUG "%s: wmem leakage (%d bytes) detected.\n",
  87 + __func__, atomic_read(&sk->sk_wmem_alloc));
90 88 }
91 89  
92 90 static void vcc_def_wakeup(struct sock *sk)
... ... @@ -142,8 +140,8 @@
142 140  
143 141 vcc = atm_sk(sk);
144 142 vcc->dev = NULL;
145   - memset(&vcc->local,0,sizeof(struct sockaddr_atmsvc));
146   - memset(&vcc->remote,0,sizeof(struct sockaddr_atmsvc));
  143 + memset(&vcc->local, 0, sizeof(struct sockaddr_atmsvc));
  144 + memset(&vcc->remote, 0, sizeof(struct sockaddr_atmsvc));
147 145 vcc->qos.txtp.max_sdu = 1 << 16; /* for meta VCs */
148 146 atomic_set(&sk->sk_wmem_alloc, 1);
149 147 atomic_set(&sk->sk_rmem_alloc, 0);
... ... @@ -156,7 +154,6 @@
156 154 return 0;
157 155 }
158 156  
159   -
160 157 static void vcc_destroy_socket(struct sock *sk)
161 158 {
162 159 struct atm_vcc *vcc = atm_sk(sk);
... ... @@ -171,7 +168,7 @@
171 168 vcc->push(vcc, NULL); /* atmarpd has no push */
172 169  
173 170 while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) {
174   - atm_return(vcc,skb->truesize);
  171 + atm_return(vcc, skb->truesize);
175 172 kfree_skb(skb);
176 173 }
177 174  
... ... @@ -182,7 +179,6 @@
182 179 vcc_remove_socket(sk);
183 180 }
184 181  
185   -
186 182 int vcc_release(struct socket *sock)
187 183 {
188 184 struct sock *sk = sock->sk;
... ... @@ -197,7 +193,6 @@
197 193 return 0;
198 194 }
199 195  
200   -
201 196 void vcc_release_async(struct atm_vcc *vcc, int reply)
202 197 {
203 198 struct sock *sk = sk_atm(vcc);
... ... @@ -208,8 +203,6 @@
208 203 clear_bit(ATM_VF_WAITING, &vcc->flags);
209 204 sk->sk_state_change(sk);
210 205 }
211   -
212   -
213 206 EXPORT_SYMBOL(vcc_release_async);
214 207  
215 208  
216 209  
217 210  
218 211  
219 212  
220 213  
... ... @@ -235,36 +228,37 @@
235 228 write_unlock_irq(&vcc_sklist_lock);
236 229 }
237 230  
238   -
239   -static int adjust_tp(struct atm_trafprm *tp,unsigned char aal)
  231 +static int adjust_tp(struct atm_trafprm *tp, unsigned char aal)
240 232 {
241 233 int max_sdu;
242 234  
243   - if (!tp->traffic_class) return 0;
  235 + if (!tp->traffic_class)
  236 + return 0;
244 237 switch (aal) {
245   - case ATM_AAL0:
246   - max_sdu = ATM_CELL_SIZE-1;
247   - break;
248   - case ATM_AAL34:
249   - max_sdu = ATM_MAX_AAL34_PDU;
250   - break;
251   - default:
252   - pr_warning("AAL problems ... (%d)\n", aal);
253   - /* fall through */
254   - case ATM_AAL5:
255   - max_sdu = ATM_MAX_AAL5_PDU;
  238 + case ATM_AAL0:
  239 + max_sdu = ATM_CELL_SIZE-1;
  240 + break;
  241 + case ATM_AAL34:
  242 + max_sdu = ATM_MAX_AAL34_PDU;
  243 + break;
  244 + default:
  245 + pr_warning("AAL problems ... (%d)\n", aal);
  246 + /* fall through */
  247 + case ATM_AAL5:
  248 + max_sdu = ATM_MAX_AAL5_PDU;
256 249 }
257   - if (!tp->max_sdu) tp->max_sdu = max_sdu;
258   - else if (tp->max_sdu > max_sdu) return -EINVAL;
259   - if (!tp->max_cdv) tp->max_cdv = ATM_MAX_CDV;
  250 + if (!tp->max_sdu)
  251 + tp->max_sdu = max_sdu;
  252 + else if (tp->max_sdu > max_sdu)
  253 + return -EINVAL;
  254 + if (!tp->max_cdv)
  255 + tp->max_cdv = ATM_MAX_CDV;
260 256 return 0;
261 257 }
262 258  
263   -
264 259 static int check_ci(const struct atm_vcc *vcc, short vpi, int vci)
265 260 {
266   - struct hlist_head *head = &vcc_hash[vci &
267   - (VCC_HTABLE_SIZE - 1)];
  261 + struct hlist_head *head = &vcc_hash[vci & (VCC_HTABLE_SIZE - 1)];
268 262 struct hlist_node *node;
269 263 struct sock *s;
270 264 struct atm_vcc *walk;
... ... @@ -288,7 +282,6 @@
288 282 return 0;
289 283 }
290 284  
291   -
292 285 static int find_ci(const struct atm_vcc *vcc, short *vpi, int *vci)
293 286 {
294 287 static short p; /* poor man's per-device cache */
295 288  
296 289  
... ... @@ -326,14 +319,13 @@
326 319 if ((c == ATM_NOT_RSV_VCI || *vci != ATM_VCI_ANY) &&
327 320 *vpi == ATM_VPI_ANY) {
328 321 p++;
329   - if (p >= 1 << vcc->dev->ci_range.vpi_bits) p = 0;
  322 + if (p >= 1 << vcc->dev->ci_range.vpi_bits)
  323 + p = 0;
330 324 }
331   - }
332   - while (old_p != p || old_c != c);
  325 + } while (old_p != p || old_c != c);
333 326 return -EADDRINUSE;
334 327 }
335 328  
336   -
337 329 static int __vcc_connect(struct atm_vcc *vcc, struct atm_dev *dev, short vpi,
338 330 int vci)
339 331 {
340 332  
... ... @@ -361,27 +353,29 @@
361 353 __vcc_insert_socket(sk);
362 354 write_unlock_irq(&vcc_sklist_lock);
363 355 switch (vcc->qos.aal) {
364   - case ATM_AAL0:
365   - error = atm_init_aal0(vcc);
366   - vcc->stats = &dev->stats.aal0;
367   - break;
368   - case ATM_AAL34:
369   - error = atm_init_aal34(vcc);
370   - vcc->stats = &dev->stats.aal34;
371   - break;
372   - case ATM_NO_AAL:
373   - /* ATM_AAL5 is also used in the "0 for default" case */
374   - vcc->qos.aal = ATM_AAL5;
375   - /* fall through */
376   - case ATM_AAL5:
377   - error = atm_init_aal5(vcc);
378   - vcc->stats = &dev->stats.aal5;
379   - break;
380   - default:
381   - error = -EPROTOTYPE;
  356 + case ATM_AAL0:
  357 + error = atm_init_aal0(vcc);
  358 + vcc->stats = &dev->stats.aal0;
  359 + break;
  360 + case ATM_AAL34:
  361 + error = atm_init_aal34(vcc);
  362 + vcc->stats = &dev->stats.aal34;
  363 + break;
  364 + case ATM_NO_AAL:
  365 + /* ATM_AAL5 is also used in the "0 for default" case */
  366 + vcc->qos.aal = ATM_AAL5;
  367 + /* fall through */
  368 + case ATM_AAL5:
  369 + error = atm_init_aal5(vcc);
  370 + vcc->stats = &dev->stats.aal5;
  371 + break;
  372 + default:
  373 + error = -EPROTOTYPE;
382 374 }
383   - if (!error) error = adjust_tp(&vcc->qos.txtp,vcc->qos.aal);
384   - if (!error) error = adjust_tp(&vcc->qos.rxtp,vcc->qos.aal);
  375 + if (!error)
  376 + error = adjust_tp(&vcc->qos.txtp, vcc->qos.aal);
  377 + if (!error)
  378 + error = adjust_tp(&vcc->qos.rxtp, vcc->qos.aal);
385 379 if (error)
386 380 goto fail;
387 381 pr_debug("VCC %d.%d, AAL %d\n", vpi, vci, vcc->qos.aal);
... ... @@ -397,7 +391,8 @@
397 391 vcc->qos.rxtp.max_sdu);
398 392  
399 393 if (dev->ops->open) {
400   - if ((error = dev->ops->open(vcc)))
  394 + error = dev->ops->open(vcc);
  395 + if (error)
401 396 goto fail;
402 397 }
403 398 return 0;
... ... @@ -411,7 +406,6 @@
411 406 return error;
412 407 }
413 408  
414   -
415 409 int vcc_connect(struct socket *sock, int itf, short vpi, int vci)
416 410 {
417 411 struct atm_dev *dev;
418 412  
419 413  
... ... @@ -427,16 +421,16 @@
427 421 return -EINVAL;
428 422  
429 423 if (vpi != ATM_VPI_UNSPEC && vci != ATM_VCI_UNSPEC)
430   - clear_bit(ATM_VF_PARTIAL,&vcc->flags);
  424 + clear_bit(ATM_VF_PARTIAL, &vcc->flags);
431 425 else
432   - if (test_bit(ATM_VF_PARTIAL,&vcc->flags))
  426 + if (test_bit(ATM_VF_PARTIAL, &vcc->flags))
433 427 return -EINVAL;
434 428 pr_debug("(TX: cl %d,bw %d-%d,sdu %d; "
435 429 "RX: cl %d,bw %d-%d,sdu %d,AAL %s%d)\n",
436 430 vcc->qos.txtp.traffic_class, vcc->qos.txtp.min_pcr,
437 431 vcc->qos.txtp.max_pcr, vcc->qos.txtp.max_sdu,
438 432 vcc->qos.rxtp.traffic_class, vcc->qos.rxtp.min_pcr,
439   - vcc->qos.rxtp.max_pcr,vcc->qos.rxtp.max_sdu,
  433 + vcc->qos.rxtp.max_pcr, vcc->qos.rxtp.max_sdu,
440 434 vcc->qos.aal == ATM_AAL5 ? "" :
441 435 vcc->qos.aal == ATM_AAL0 ? "" : " ??? code ",
442 436 vcc->qos.aal == ATM_AAL0 ? 0 : vcc->qos.aal);
443 437  
... ... @@ -446,12 +440,14 @@
446 440 vcc->qos.rxtp.traffic_class == ATM_ANYCLASS)
447 441 return -EINVAL;
448 442 if (likely(itf != ATM_ITF_ANY)) {
449   - dev = try_then_request_module(atm_dev_lookup(itf), "atm-device-%d", itf);
  443 + dev = try_then_request_module(atm_dev_lookup(itf),
  444 + "atm-device-%d", itf);
450 445 } else {
451 446 dev = NULL;
452 447 mutex_lock(&atm_dev_mutex);
453 448 if (!list_empty(&atm_devs)) {
454   - dev = list_entry(atm_devs.next, struct atm_dev, dev_list);
  449 + dev = list_entry(atm_devs.next,
  450 + struct atm_dev, dev_list);
455 451 atm_dev_hold(dev);
456 452 }
457 453 mutex_unlock(&atm_dev_mutex);
458 454  
... ... @@ -464,13 +460,12 @@
464 460 return error;
465 461 }
466 462 if (vpi == ATM_VPI_UNSPEC || vci == ATM_VCI_UNSPEC)
467   - set_bit(ATM_VF_PARTIAL,&vcc->flags);
468   - if (test_bit(ATM_VF_READY,&ATM_SD(sock)->flags))
  463 + set_bit(ATM_VF_PARTIAL, &vcc->flags);
  464 + if (test_bit(ATM_VF_READY, &ATM_SD(sock)->flags))
469 465 sock->state = SS_CONNECTED;
470 466 return 0;
471 467 }
472 468  
473   -
474 469 int vcc_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
475 470 size_t size, int flags)
476 471 {
... ... @@ -484,8 +479,8 @@
484 479 if (flags & ~MSG_DONTWAIT) /* only handle MSG_DONTWAIT */
485 480 return -EOPNOTSUPP;
486 481 vcc = ATM_SD(sock);
487   - if (test_bit(ATM_VF_RELEASED,&vcc->flags) ||
488   - test_bit(ATM_VF_CLOSE,&vcc->flags) ||
  482 + if (test_bit(ATM_VF_RELEASED, &vcc->flags) ||
  483 + test_bit(ATM_VF_CLOSE, &vcc->flags) ||
489 484 !test_bit(ATM_VF_READY, &vcc->flags))
490 485 return 0;
491 486  
... ... @@ -509,7 +504,6 @@
509 504 return copied;
510 505 }
511 506  
512   -
513 507 int vcc_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *m,
514 508 size_t total_len)
515 509 {
... ... @@ -517,7 +511,7 @@
517 511 DEFINE_WAIT(wait);
518 512 struct atm_vcc *vcc;
519 513 struct sk_buff *skb;
520   - int eff,error;
  514 + int eff, error;
521 515 const void __user *buff;
522 516 int size;
523 517  
... ... @@ -556,7 +550,7 @@
556 550 eff = (size+3) & ~3; /* align to word boundary */
557 551 prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE);
558 552 error = 0;
559   - while (!(skb = alloc_tx(vcc,eff))) {
  553 + while (!(skb = alloc_tx(vcc, eff))) {
560 554 if (m->msg_flags & MSG_DONTWAIT) {
561 555 error = -EAGAIN;
562 556 break;
... ... @@ -566,9 +560,9 @@
566 560 error = -ERESTARTSYS;
567 561 break;
568 562 }
569   - if (test_bit(ATM_VF_RELEASED,&vcc->flags) ||
570   - test_bit(ATM_VF_CLOSE,&vcc->flags) ||
571   - !test_bit(ATM_VF_READY,&vcc->flags)) {
  563 + if (test_bit(ATM_VF_RELEASED, &vcc->flags) ||
  564 + test_bit(ATM_VF_CLOSE, &vcc->flags) ||
  565 + !test_bit(ATM_VF_READY, &vcc->flags)) {
572 566 error = -EPIPE;
573 567 send_sig(SIGPIPE, current, 0);
574 568 break;
575 569  
576 570  
... ... @@ -580,20 +574,20 @@
580 574 goto out;
581 575 skb->dev = NULL; /* for paths shared with net_device interfaces */
582 576 ATM_SKB(skb)->atm_options = vcc->atm_options;
583   - if (copy_from_user(skb_put(skb,size),buff,size)) {
  577 + if (copy_from_user(skb_put(skb, size), buff, size)) {
584 578 kfree_skb(skb);
585 579 error = -EFAULT;
586 580 goto out;
587 581 }
588   - if (eff != size) memset(skb->data+size,0,eff-size);
589   - error = vcc->dev->ops->send(vcc,skb);
  582 + if (eff != size)
  583 + memset(skb->data + size, 0, eff-size);
  584 + error = vcc->dev->ops->send(vcc, skb);
590 585 error = error ? error : size;
591 586 out:
592 587 release_sock(sk);
593 588 return error;
594 589 }
595 590  
596   -
597 591 unsigned int vcc_poll(struct file *file, struct socket *sock, poll_table *wait)
598 592 {
599 593 struct sock *sk = sock->sk;
... ... @@ -629,8 +623,7 @@
629 623 return mask;
630 624 }
631 625  
632   -
633   -static int atm_change_qos(struct atm_vcc *vcc,struct atm_qos *qos)
  626 +static int atm_change_qos(struct atm_vcc *vcc, struct atm_qos *qos)
634 627 {
635 628 int error;
636 629  
637 630  
638 631  
639 632  
640 633  
641 634  
... ... @@ -642,25 +635,31 @@
642 635 qos->rxtp.traffic_class != vcc->qos.rxtp.traffic_class ||
643 636 qos->txtp.traffic_class != vcc->qos.txtp.traffic_class)
644 637 return -EINVAL;
645   - error = adjust_tp(&qos->txtp,qos->aal);
646   - if (!error) error = adjust_tp(&qos->rxtp,qos->aal);
647   - if (error) return error;
648   - if (!vcc->dev->ops->change_qos) return -EOPNOTSUPP;
  638 + error = adjust_tp(&qos->txtp, qos->aal);
  639 + if (!error)
  640 + error = adjust_tp(&qos->rxtp, qos->aal);
  641 + if (error)
  642 + return error;
  643 + if (!vcc->dev->ops->change_qos)
  644 + return -EOPNOTSUPP;
649 645 if (sk_atm(vcc)->sk_family == AF_ATMPVC)
650   - return vcc->dev->ops->change_qos(vcc,qos,ATM_MF_SET);
651   - return svc_change_qos(vcc,qos);
  646 + return vcc->dev->ops->change_qos(vcc, qos, ATM_MF_SET);
  647 + return svc_change_qos(vcc, qos);
652 648 }
653 649  
654   -
655 650 static int check_tp(const struct atm_trafprm *tp)
656 651 {
657 652 /* @@@ Should be merged with adjust_tp */
658   - if (!tp->traffic_class || tp->traffic_class == ATM_ANYCLASS) return 0;
  653 + if (!tp->traffic_class || tp->traffic_class == ATM_ANYCLASS)
  654 + return 0;
659 655 if (tp->traffic_class != ATM_UBR && !tp->min_pcr && !tp->pcr &&
660   - !tp->max_pcr) return -EINVAL;
661   - if (tp->min_pcr == ATM_MAX_PCR) return -EINVAL;
  656 + !tp->max_pcr)
  657 + return -EINVAL;
  658 + if (tp->min_pcr == ATM_MAX_PCR)
  659 + return -EINVAL;
662 660 if (tp->min_pcr && tp->max_pcr && tp->max_pcr != ATM_MAX_PCR &&
663   - tp->min_pcr > tp->max_pcr) return -EINVAL;
  661 + tp->min_pcr > tp->max_pcr)
  662 + return -EINVAL;
664 663 /*
665 664 * We allow pcr to be outside [min_pcr,max_pcr], because later
666 665 * adjustment may still push it in the valid range.
... ... @@ -668,7 +667,6 @@
668 667 return 0;
669 668 }
670 669  
671   -
672 670 static int check_qos(const struct atm_qos *qos)
673 671 {
674 672 int error;
675 673  
... ... @@ -678,9 +676,11 @@
678 676 if (qos->txtp.traffic_class != qos->rxtp.traffic_class &&
679 677 qos->txtp.traffic_class && qos->rxtp.traffic_class &&
680 678 qos->txtp.traffic_class != ATM_ANYCLASS &&
681   - qos->rxtp.traffic_class != ATM_ANYCLASS) return -EINVAL;
  679 + qos->rxtp.traffic_class != ATM_ANYCLASS)
  680 + return -EINVAL;
682 681 error = check_tp(&qos->txtp);
683   - if (error) return error;
  682 + if (error)
  683 + return error;
684 684 return check_tp(&qos->rxtp);
685 685 }
686 686  
687 687  
688 688  
689 689  
... ... @@ -696,37 +696,41 @@
696 696  
697 697 vcc = ATM_SD(sock);
698 698 switch (optname) {
699   - case SO_ATMQOS:
700   - {
701   - struct atm_qos qos;
  699 + case SO_ATMQOS:
  700 + {
  701 + struct atm_qos qos;
702 702  
703   - if (copy_from_user(&qos,optval,sizeof(qos)))
704   - return -EFAULT;
705   - error = check_qos(&qos);
706   - if (error) return error;
707   - if (sock->state == SS_CONNECTED)
708   - return atm_change_qos(vcc,&qos);
709   - if (sock->state != SS_UNCONNECTED)
710   - return -EBADFD;
711   - vcc->qos = qos;
712   - set_bit(ATM_VF_HASQOS,&vcc->flags);
713   - return 0;
714   - }
715   - case SO_SETCLP:
716   - if (get_user(value,(unsigned long __user *)optval))
717   - return -EFAULT;
718   - if (value) vcc->atm_options |= ATM_ATMOPT_CLP;
719   - else vcc->atm_options &= ~ATM_ATMOPT_CLP;
720   - return 0;
721   - default:
722   - if (level == SOL_SOCKET) return -EINVAL;
723   - break;
  703 + if (copy_from_user(&qos, optval, sizeof(qos)))
  704 + return -EFAULT;
  705 + error = check_qos(&qos);
  706 + if (error)
  707 + return error;
  708 + if (sock->state == SS_CONNECTED)
  709 + return atm_change_qos(vcc, &qos);
  710 + if (sock->state != SS_UNCONNECTED)
  711 + return -EBADFD;
  712 + vcc->qos = qos;
  713 + set_bit(ATM_VF_HASQOS, &vcc->flags);
  714 + return 0;
724 715 }
725   - if (!vcc->dev || !vcc->dev->ops->setsockopt) return -EINVAL;
726   - return vcc->dev->ops->setsockopt(vcc,level,optname,optval,optlen);
  716 + case SO_SETCLP:
  717 + if (get_user(value, (unsigned long __user *)optval))
  718 + return -EFAULT;
  719 + if (value)
  720 + vcc->atm_options |= ATM_ATMOPT_CLP;
  721 + else
  722 + vcc->atm_options &= ~ATM_ATMOPT_CLP;
  723 + return 0;
  724 + default:
  725 + if (level == SOL_SOCKET)
  726 + return -EINVAL;
  727 + break;
  728 + }
  729 + if (!vcc->dev || !vcc->dev->ops->setsockopt)
  730 + return -EINVAL;
  731 + return vcc->dev->ops->setsockopt(vcc, level, optname, optval, optlen);
727 732 }
728 733  
729   -
730 734 int vcc_getsockopt(struct socket *sock, int level, int optname,
731 735 char __user *optval, int __user *optlen)
732 736 {
733 737  
734 738  
... ... @@ -740,33 +744,33 @@
740 744  
741 745 vcc = ATM_SD(sock);
742 746 switch (optname) {
743   - case SO_ATMQOS:
744   - if (!test_bit(ATM_VF_HASQOS,&vcc->flags))
745   - return -EINVAL;
746   - return copy_to_user(optval,&vcc->qos,sizeof(vcc->qos)) ?
747   - -EFAULT : 0;
748   - case SO_SETCLP:
749   - return put_user(vcc->atm_options & ATM_ATMOPT_CLP ? 1 :
750   - 0,(unsigned long __user *)optval) ? -EFAULT : 0;
751   - case SO_ATMPVC:
752   - {
753   - struct sockaddr_atmpvc pvc;
  747 + case SO_ATMQOS:
  748 + if (!test_bit(ATM_VF_HASQOS, &vcc->flags))
  749 + return -EINVAL;
  750 + return copy_to_user(optval, &vcc->qos, sizeof(vcc->qos))
  751 + ? -EFAULT : 0;
  752 + case SO_SETCLP:
  753 + return put_user(vcc->atm_options & ATM_ATMOPT_CLP ? 1 : 0,
  754 + (unsigned long __user *)optval) ? -EFAULT : 0;
  755 + case SO_ATMPVC:
  756 + {
  757 + struct sockaddr_atmpvc pvc;
754 758  
755   - if (!vcc->dev ||
756   - !test_bit(ATM_VF_ADDR,&vcc->flags))
757   - return -ENOTCONN;
758   - pvc.sap_family = AF_ATMPVC;
759   - pvc.sap_addr.itf = vcc->dev->number;
760   - pvc.sap_addr.vpi = vcc->vpi;
761   - pvc.sap_addr.vci = vcc->vci;
762   - return copy_to_user(optval,&pvc,sizeof(pvc)) ?
763   - -EFAULT : 0;
764   - }
765   - default:
766   - if (level == SOL_SOCKET) return -EINVAL;
  759 + if (!vcc->dev || !test_bit(ATM_VF_ADDR, &vcc->flags))
  760 + return -ENOTCONN;
  761 + pvc.sap_family = AF_ATMPVC;
  762 + pvc.sap_addr.itf = vcc->dev->number;
  763 + pvc.sap_addr.vpi = vcc->vpi;
  764 + pvc.sap_addr.vci = vcc->vci;
  765 + return copy_to_user(optval, &pvc, sizeof(pvc)) ? -EFAULT : 0;
  766 + }
  767 + default:
  768 + if (level == SOL_SOCKET)
  769 + return -EINVAL;
767 770 break;
768 771 }
769   - if (!vcc->dev || !vcc->dev->ops->getsockopt) return -EINVAL;
  772 + if (!vcc->dev || !vcc->dev->ops->getsockopt)
  773 + return -EINVAL;
770 774 return vcc->dev->ops->getsockopt(vcc, level, optname, optval, len);
771 775 }
772 776  
773 777  
774 778  
775 779  
776 780  
... ... @@ -774,22 +778,26 @@
774 778 {
775 779 int error;
776 780  
777   - if ((error = proto_register(&vcc_proto, 0)) < 0)
  781 + error = proto_register(&vcc_proto, 0);
  782 + if (error < 0)
778 783 goto out;
779   -
780   - if ((error = atmpvc_init()) < 0) {
  784 + error = atmpvc_init();
  785 + if (error < 0) {
781 786 pr_err("atmpvc_init() failed with %d\n", error);
782 787 goto out_unregister_vcc_proto;
783 788 }
784   - if ((error = atmsvc_init()) < 0) {
  789 + error = atmsvc_init();
  790 + if (error < 0) {
785 791 pr_err("atmsvc_init() failed with %d\n", error);
786 792 goto out_atmpvc_exit;
787 793 }
788   - if ((error = atm_proc_init()) < 0) {
  794 + error = atm_proc_init();
  795 + if (error < 0) {
789 796 pr_err("atm_proc_init() failed with %d\n", error);
790 797 goto out_atmsvc_exit;
791 798 }
792   - if ((error = atm_sysfs_init()) < 0) {
  799 + error = atm_sysfs_init();
  800 + if (error < 0) {
793 801 pr_err("atm_sysfs_init() failed with %d\n", error);
794 802 goto out_atmproc_exit;
795 803 }