diff options
Diffstat (limited to 'net/irda/irlan/irlan_common.c')
| -rw-r--r-- | net/irda/irlan/irlan_common.c | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/net/irda/irlan/irlan_common.c b/net/irda/irlan/irlan_common.c index 657d12210578..9b962f247714 100644 --- a/net/irda/irlan/irlan_common.c +++ b/net/irda/irlan/irlan_common.c | |||
| @@ -23,7 +23,6 @@ | |||
| 23 | * | 23 | * |
| 24 | ********************************************************************/ | 24 | ********************************************************************/ |
| 25 | 25 | ||
| 26 | #include <linux/config.h> | ||
| 27 | #include <linux/module.h> | 26 | #include <linux/module.h> |
| 28 | 27 | ||
| 29 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
| @@ -637,7 +636,8 @@ void irlan_get_provider_info(struct irlan_cb *self) | |||
| 637 | IRDA_ASSERT(self != NULL, return;); | 636 | IRDA_ASSERT(self != NULL, return;); |
| 638 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); | 637 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); |
| 639 | 638 | ||
| 640 | skb = dev_alloc_skb(64); | 639 | skb = alloc_skb(IRLAN_MAX_HEADER + IRLAN_CMD_HEADER, |
| 640 | GFP_ATOMIC); | ||
| 641 | if (!skb) | 641 | if (!skb) |
| 642 | return; | 642 | return; |
| 643 | 643 | ||
| @@ -669,7 +669,10 @@ void irlan_open_data_channel(struct irlan_cb *self) | |||
| 669 | IRDA_ASSERT(self != NULL, return;); | 669 | IRDA_ASSERT(self != NULL, return;); |
| 670 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); | 670 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); |
| 671 | 671 | ||
| 672 | skb = dev_alloc_skb(64); | 672 | skb = alloc_skb(IRLAN_MAX_HEADER + IRLAN_CMD_HEADER + |
| 673 | IRLAN_STRING_PARAMETER_LEN("MEDIA", "802.3") + | ||
| 674 | IRLAN_STRING_PARAMETER_LEN("ACCESS_TYPE", "DIRECT"), | ||
| 675 | GFP_ATOMIC); | ||
| 673 | if (!skb) | 676 | if (!skb) |
| 674 | return; | 677 | return; |
| 675 | 678 | ||
| @@ -705,7 +708,9 @@ void irlan_close_data_channel(struct irlan_cb *self) | |||
| 705 | if (self->client.tsap_ctrl == NULL) | 708 | if (self->client.tsap_ctrl == NULL) |
| 706 | return; | 709 | return; |
| 707 | 710 | ||
| 708 | skb = dev_alloc_skb(64); | 711 | skb = alloc_skb(IRLAN_MAX_HEADER + IRLAN_CMD_HEADER + |
| 712 | IRLAN_BYTE_PARAMETER_LEN("DATA_CHAN"), | ||
| 713 | GFP_ATOMIC); | ||
| 709 | if (!skb) | 714 | if (!skb) |
| 710 | return; | 715 | return; |
| 711 | 716 | ||
| @@ -716,7 +721,7 @@ void irlan_close_data_channel(struct irlan_cb *self) | |||
| 716 | 721 | ||
| 717 | /* Build frame */ | 722 | /* Build frame */ |
| 718 | frame[0] = CMD_CLOSE_DATA_CHAN; | 723 | frame[0] = CMD_CLOSE_DATA_CHAN; |
| 719 | frame[1] = 0x01; /* Two parameters */ | 724 | frame[1] = 0x01; /* One parameter */ |
| 720 | 725 | ||
| 721 | irlan_insert_byte_param(skb, "DATA_CHAN", self->dtsap_sel_data); | 726 | irlan_insert_byte_param(skb, "DATA_CHAN", self->dtsap_sel_data); |
| 722 | 727 | ||
| @@ -740,7 +745,11 @@ static void irlan_open_unicast_addr(struct irlan_cb *self) | |||
| 740 | IRDA_ASSERT(self != NULL, return;); | 745 | IRDA_ASSERT(self != NULL, return;); |
| 741 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); | 746 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); |
| 742 | 747 | ||
| 743 | skb = dev_alloc_skb(128); | 748 | skb = alloc_skb(IRLAN_MAX_HEADER + IRLAN_CMD_HEADER + |
| 749 | IRLAN_BYTE_PARAMETER_LEN("DATA_CHAN") + | ||
| 750 | IRLAN_STRING_PARAMETER_LEN("FILTER_TYPE", "DIRECTED") + | ||
| 751 | IRLAN_STRING_PARAMETER_LEN("FILTER_MODE", "FILTER"), | ||
| 752 | GFP_ATOMIC); | ||
| 744 | if (!skb) | 753 | if (!skb) |
| 745 | return; | 754 | return; |
| 746 | 755 | ||
| @@ -778,7 +787,12 @@ void irlan_set_broadcast_filter(struct irlan_cb *self, int status) | |||
| 778 | IRDA_ASSERT(self != NULL, return;); | 787 | IRDA_ASSERT(self != NULL, return;); |
| 779 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); | 788 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); |
| 780 | 789 | ||
| 781 | skb = dev_alloc_skb(128); | 790 | skb = alloc_skb(IRLAN_MAX_HEADER + IRLAN_CMD_HEADER + |
| 791 | IRLAN_BYTE_PARAMETER_LEN("DATA_CHAN") + | ||
| 792 | IRLAN_STRING_PARAMETER_LEN("FILTER_TYPE", "BROADCAST") + | ||
| 793 | /* We may waste one byte here...*/ | ||
| 794 | IRLAN_STRING_PARAMETER_LEN("FILTER_MODE", "FILTER"), | ||
| 795 | GFP_ATOMIC); | ||
| 782 | if (!skb) | 796 | if (!skb) |
| 783 | return; | 797 | return; |
| 784 | 798 | ||
| @@ -817,7 +831,12 @@ void irlan_set_multicast_filter(struct irlan_cb *self, int status) | |||
| 817 | IRDA_ASSERT(self != NULL, return;); | 831 | IRDA_ASSERT(self != NULL, return;); |
| 818 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); | 832 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); |
| 819 | 833 | ||
| 820 | skb = dev_alloc_skb(128); | 834 | skb = alloc_skb(IRLAN_MAX_HEADER + IRLAN_CMD_HEADER + |
| 835 | IRLAN_BYTE_PARAMETER_LEN("DATA_CHAN") + | ||
| 836 | IRLAN_STRING_PARAMETER_LEN("FILTER_TYPE", "MULTICAST") + | ||
| 837 | /* We may waste one byte here...*/ | ||
| 838 | IRLAN_STRING_PARAMETER_LEN("FILTER_MODE", "NONE"), | ||
| 839 | GFP_ATOMIC); | ||
| 821 | if (!skb) | 840 | if (!skb) |
| 822 | return; | 841 | return; |
| 823 | 842 | ||
| @@ -857,7 +876,12 @@ static void irlan_get_unicast_addr(struct irlan_cb *self) | |||
| 857 | IRDA_ASSERT(self != NULL, return;); | 876 | IRDA_ASSERT(self != NULL, return;); |
| 858 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); | 877 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); |
| 859 | 878 | ||
| 860 | skb = dev_alloc_skb(128); | 879 | skb = alloc_skb(IRLAN_MAX_HEADER + IRLAN_CMD_HEADER + |
| 880 | IRLAN_BYTE_PARAMETER_LEN("DATA_CHAN") + | ||
| 881 | IRLAN_STRING_PARAMETER_LEN("FILTER_TYPE", "DIRECTED") + | ||
| 882 | IRLAN_STRING_PARAMETER_LEN("FILTER_OPERATION", | ||
| 883 | "DYNAMIC"), | ||
| 884 | GFP_ATOMIC); | ||
| 861 | if (!skb) | 885 | if (!skb) |
| 862 | return; | 886 | return; |
| 863 | 887 | ||
| @@ -892,7 +916,10 @@ void irlan_get_media_char(struct irlan_cb *self) | |||
| 892 | IRDA_ASSERT(self != NULL, return;); | 916 | IRDA_ASSERT(self != NULL, return;); |
| 893 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); | 917 | IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); |
| 894 | 918 | ||
| 895 | skb = dev_alloc_skb(64); | 919 | skb = alloc_skb(IRLAN_MAX_HEADER + IRLAN_CMD_HEADER + |
| 920 | IRLAN_STRING_PARAMETER_LEN("MEDIA", "802.3"), | ||
| 921 | GFP_ATOMIC); | ||
| 922 | |||
| 896 | if (!skb) | 923 | if (!skb) |
| 897 | return; | 924 | return; |
| 898 | 925 | ||
