mirror of https://github.com/torvalds/linux.git
Merge branch 'net-hdlc_fr-clean-up-some-code-style-issues'
Peng Li says: ==================== net: hdlc_fr: clean up some code style issues V1 -> V2: 1, Use appropriate commit prefix suggested by Jakub Kicinski, replace commit prefix "net: wan" by "net: hdlc_fr". ==================== Link: https://lore.kernel.org/r/1622160769-6678-1-git-send-email-huangguangbin2@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
38e9673ce0
|
|
@ -60,7 +60,6 @@
|
||||||
#define NLPID_CCITT_ANSI_LMI 0x08
|
#define NLPID_CCITT_ANSI_LMI 0x08
|
||||||
#define NLPID_CISCO_LMI 0x09
|
#define NLPID_CISCO_LMI 0x09
|
||||||
|
|
||||||
|
|
||||||
#define LMI_CCITT_ANSI_DLCI 0 /* LMI DLCI */
|
#define LMI_CCITT_ANSI_DLCI 0 /* LMI DLCI */
|
||||||
#define LMI_CISCO_DLCI 1023
|
#define LMI_CISCO_DLCI 1023
|
||||||
|
|
||||||
|
|
@ -86,7 +85,6 @@
|
||||||
#define LMI_CCITT_CISCO_LENGTH 13 /* LMI frame lengths */
|
#define LMI_CCITT_CISCO_LENGTH 13 /* LMI frame lengths */
|
||||||
#define LMI_ANSI_LENGTH 14
|
#define LMI_ANSI_LENGTH 14
|
||||||
|
|
||||||
|
|
||||||
struct fr_hdr {
|
struct fr_hdr {
|
||||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||||
unsigned ea1: 1;
|
unsigned ea1: 1;
|
||||||
|
|
@ -111,7 +109,6 @@ struct fr_hdr {
|
||||||
#endif
|
#endif
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
|
|
||||||
struct pvc_device {
|
struct pvc_device {
|
||||||
struct net_device *frad;
|
struct net_device *frad;
|
||||||
struct net_device *main;
|
struct net_device *main;
|
||||||
|
|
@ -128,7 +125,7 @@ struct pvc_device {
|
||||||
unsigned int fecn: 1;
|
unsigned int fecn: 1;
|
||||||
unsigned int becn: 1;
|
unsigned int becn: 1;
|
||||||
unsigned int bandwidth; /* Cisco LMI reporting only */
|
unsigned int bandwidth; /* Cisco LMI reporting only */
|
||||||
}state;
|
} state;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct frad_state {
|
struct frad_state {
|
||||||
|
|
@ -149,29 +146,24 @@ struct frad_state {
|
||||||
u8 rxseq; /* RX sequence number */
|
u8 rxseq; /* RX sequence number */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static int fr_ioctl(struct net_device *dev, struct ifreq *ifr);
|
static int fr_ioctl(struct net_device *dev, struct ifreq *ifr);
|
||||||
|
|
||||||
|
|
||||||
static inline u16 q922_to_dlci(u8 *hdr)
|
static inline u16 q922_to_dlci(u8 *hdr)
|
||||||
{
|
{
|
||||||
return ((hdr[0] & 0xFC) << 2) | ((hdr[1] & 0xF0) >> 4);
|
return ((hdr[0] & 0xFC) << 2) | ((hdr[1] & 0xF0) >> 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline void dlci_to_q922(u8 *hdr, u16 dlci)
|
static inline void dlci_to_q922(u8 *hdr, u16 dlci)
|
||||||
{
|
{
|
||||||
hdr[0] = (dlci >> 2) & 0xFC;
|
hdr[0] = (dlci >> 2) & 0xFC;
|
||||||
hdr[1] = ((dlci << 4) & 0xF0) | 0x01;
|
hdr[1] = ((dlci << 4) & 0xF0) | 0x01;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline struct frad_state *state(hdlc_device *hdlc)
|
||||||
static inline struct frad_state* state(hdlc_device *hdlc)
|
|
||||||
{
|
{
|
||||||
return(struct frad_state *)(hdlc->state);
|
return (struct frad_state *)(hdlc->state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline struct pvc_device *find_pvc(hdlc_device *hdlc, u16 dlci)
|
static inline struct pvc_device *find_pvc(hdlc_device *hdlc, u16 dlci)
|
||||||
{
|
{
|
||||||
struct pvc_device *pvc = state(hdlc)->first_pvc;
|
struct pvc_device *pvc = state(hdlc)->first_pvc;
|
||||||
|
|
@ -187,7 +179,6 @@ static inline struct pvc_device *find_pvc(hdlc_device *hdlc, u16 dlci)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct pvc_device *add_pvc(struct net_device *dev, u16 dlci)
|
static struct pvc_device *add_pvc(struct net_device *dev, u16 dlci)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||||
|
|
@ -215,13 +206,11 @@ static struct pvc_device *add_pvc(struct net_device *dev, u16 dlci)
|
||||||
return pvc;
|
return pvc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline int pvc_is_used(struct pvc_device *pvc)
|
static inline int pvc_is_used(struct pvc_device *pvc)
|
||||||
{
|
{
|
||||||
return pvc->main || pvc->ether;
|
return pvc->main || pvc->ether;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline void pvc_carrier(int on, struct pvc_device *pvc)
|
static inline void pvc_carrier(int on, struct pvc_device *pvc)
|
||||||
{
|
{
|
||||||
if (on) {
|
if (on) {
|
||||||
|
|
@ -241,7 +230,6 @@ static inline void pvc_carrier(int on, struct pvc_device *pvc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline void delete_unused_pvcs(hdlc_device *hdlc)
|
static inline void delete_unused_pvcs(hdlc_device *hdlc)
|
||||||
{
|
{
|
||||||
struct pvc_device **pvc_p = &state(hdlc)->first_pvc;
|
struct pvc_device **pvc_p = &state(hdlc)->first_pvc;
|
||||||
|
|
@ -260,7 +248,6 @@ static inline void delete_unused_pvcs(hdlc_device *hdlc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline struct net_device **get_dev_p(struct pvc_device *pvc,
|
static inline struct net_device **get_dev_p(struct pvc_device *pvc,
|
||||||
int type)
|
int type)
|
||||||
{
|
{
|
||||||
|
|
@ -270,7 +257,6 @@ static inline struct net_device **get_dev_p(struct pvc_device *pvc,
|
||||||
return &pvc->main;
|
return &pvc->main;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int fr_hard_header(struct sk_buff *skb, u16 dlci)
|
static int fr_hard_header(struct sk_buff *skb, u16 dlci)
|
||||||
{
|
{
|
||||||
if (!skb->dev) { /* Control packets */
|
if (!skb->dev) { /* Control packets */
|
||||||
|
|
@ -334,8 +320,6 @@ static int fr_hard_header(struct sk_buff *skb, u16 dlci)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int pvc_open(struct net_device *dev)
|
static int pvc_open(struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct pvc_device *pvc = dev->ml_priv;
|
struct pvc_device *pvc = dev->ml_priv;
|
||||||
|
|
@ -345,6 +329,7 @@ static int pvc_open(struct net_device *dev)
|
||||||
|
|
||||||
if (pvc->open_count++ == 0) {
|
if (pvc->open_count++ == 0) {
|
||||||
hdlc_device *hdlc = dev_to_hdlc(pvc->frad);
|
hdlc_device *hdlc = dev_to_hdlc(pvc->frad);
|
||||||
|
|
||||||
if (state(hdlc)->settings.lmi == LMI_NONE)
|
if (state(hdlc)->settings.lmi == LMI_NONE)
|
||||||
pvc->state.active = netif_carrier_ok(pvc->frad);
|
pvc->state.active = netif_carrier_ok(pvc->frad);
|
||||||
|
|
||||||
|
|
@ -354,14 +339,13 @@ static int pvc_open(struct net_device *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int pvc_close(struct net_device *dev)
|
static int pvc_close(struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct pvc_device *pvc = dev->ml_priv;
|
struct pvc_device *pvc = dev->ml_priv;
|
||||||
|
|
||||||
if (--pvc->open_count == 0) {
|
if (--pvc->open_count == 0) {
|
||||||
hdlc_device *hdlc = dev_to_hdlc(pvc->frad);
|
hdlc_device *hdlc = dev_to_hdlc(pvc->frad);
|
||||||
|
|
||||||
if (state(hdlc)->settings.lmi == LMI_NONE)
|
if (state(hdlc)->settings.lmi == LMI_NONE)
|
||||||
pvc->state.active = 0;
|
pvc->state.active = 0;
|
||||||
|
|
||||||
|
|
@ -373,8 +357,6 @@ static int pvc_close(struct net_device *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int pvc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
static int pvc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||||
{
|
{
|
||||||
struct pvc_device *pvc = dev->ml_priv;
|
struct pvc_device *pvc = dev->ml_priv;
|
||||||
|
|
@ -465,15 +447,12 @@ static inline void fr_log_dlci_active(struct pvc_device *pvc)
|
||||||
pvc->state.active ? "active" : "inactive");
|
pvc->state.active ? "active" : "inactive");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static inline u8 fr_lmi_nextseq(u8 x)
|
static inline u8 fr_lmi_nextseq(u8 x)
|
||||||
{
|
{
|
||||||
x++;
|
x++;
|
||||||
return x ? x : 1;
|
return x ? x : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void fr_lmi_send(struct net_device *dev, int fullrep)
|
static void fr_lmi_send(struct net_device *dev, int fullrep)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||||
|
|
@ -495,17 +474,16 @@ static void fr_lmi_send(struct net_device *dev, int fullrep)
|
||||||
}
|
}
|
||||||
|
|
||||||
skb = dev_alloc_skb(len);
|
skb = dev_alloc_skb(len);
|
||||||
if (!skb) {
|
if (!skb)
|
||||||
netdev_warn(dev, "Memory squeeze on fr_lmi_send()\n");
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
memset(skb->data, 0, len);
|
memset(skb->data, 0, len);
|
||||||
skb_reserve(skb, 4);
|
skb_reserve(skb, 4);
|
||||||
if (lmi == LMI_CISCO) {
|
if (lmi == LMI_CISCO)
|
||||||
fr_hard_header(skb, LMI_CISCO_DLCI);
|
fr_hard_header(skb, LMI_CISCO_DLCI);
|
||||||
} else {
|
else
|
||||||
fr_hard_header(skb, LMI_CCITT_ANSI_DLCI);
|
fr_hard_header(skb, LMI_CCITT_ANSI_DLCI);
|
||||||
}
|
|
||||||
data = skb_tail_pointer(skb);
|
data = skb_tail_pointer(skb);
|
||||||
data[i++] = LMI_CALLREF;
|
data[i++] = LMI_CALLREF;
|
||||||
data[i++] = dce ? LMI_STATUS : LMI_STATUS_ENQUIRY;
|
data[i++] = dce ? LMI_STATUS : LMI_STATUS_ENQUIRY;
|
||||||
|
|
@ -569,8 +547,6 @@ static void fr_lmi_send(struct net_device *dev, int fullrep)
|
||||||
dev_queue_xmit(skb);
|
dev_queue_xmit(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void fr_set_link_state(int reliable, struct net_device *dev)
|
static void fr_set_link_state(int reliable, struct net_device *dev)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||||
|
|
@ -603,7 +579,6 @@ static void fr_set_link_state(int reliable, struct net_device *dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void fr_timer(struct timer_list *t)
|
static void fr_timer(struct timer_list *t)
|
||||||
{
|
{
|
||||||
struct frad_state *st = from_timer(st, t, timer);
|
struct frad_state *st = from_timer(st, t, timer);
|
||||||
|
|
@ -637,10 +612,10 @@ static void fr_timer(struct timer_list *t)
|
||||||
fr_set_link_state(reliable, dev);
|
fr_set_link_state(reliable, dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state(hdlc)->settings.dce)
|
if (state(hdlc)->settings.dce) {
|
||||||
state(hdlc)->timer.expires = jiffies +
|
state(hdlc)->timer.expires = jiffies +
|
||||||
state(hdlc)->settings.t392 * HZ;
|
state(hdlc)->settings.t392 * HZ;
|
||||||
else {
|
} else {
|
||||||
if (state(hdlc)->n391cnt)
|
if (state(hdlc)->n391cnt)
|
||||||
state(hdlc)->n391cnt--;
|
state(hdlc)->n391cnt--;
|
||||||
|
|
||||||
|
|
@ -655,7 +630,6 @@ static void fr_timer(struct timer_list *t)
|
||||||
add_timer(&state(hdlc)->timer);
|
add_timer(&state(hdlc)->timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int fr_lmi_recv(struct net_device *dev, struct sk_buff *skb)
|
static int fr_lmi_recv(struct net_device *dev, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||||
|
|
@ -696,8 +670,9 @@ static int fr_lmi_recv(struct net_device *dev, struct sk_buff *skb)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
i = 7;
|
i = 7;
|
||||||
} else
|
} else {
|
||||||
i = 6;
|
i = 6;
|
||||||
|
}
|
||||||
|
|
||||||
if (skb->data[i] != (lmi == LMI_CCITT ? LMI_CCITT_REPTYPE :
|
if (skb->data[i] != (lmi == LMI_CCITT ? LMI_CCITT_REPTYPE :
|
||||||
LMI_ANSI_CISCO_REPTYPE)) {
|
LMI_ANSI_CISCO_REPTYPE)) {
|
||||||
|
|
@ -814,8 +789,8 @@ static int fr_lmi_recv(struct net_device *dev, struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
new = !! (skb->data[i + 2] & 0x08);
|
new = !!(skb->data[i + 2] & 0x08);
|
||||||
active = !! (skb->data[i + 2] & 0x02);
|
active = !!(skb->data[i + 2] & 0x02);
|
||||||
if (lmi == LMI_CISCO) {
|
if (lmi == LMI_CISCO) {
|
||||||
dlci = (skb->data[i] << 8) | skb->data[i + 1];
|
dlci = (skb->data[i] << 8) | skb->data[i + 1];
|
||||||
bw = (skb->data[i + 3] << 16) |
|
bw = (skb->data[i + 3] << 16) |
|
||||||
|
|
@ -962,8 +937,8 @@ static int fr_rx(struct sk_buff *skb)
|
||||||
pvc->state.becn ^= 1;
|
pvc->state.becn ^= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
skb = skb_share_check(skb, GFP_ATOMIC);
|
||||||
if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) {
|
if (!skb) {
|
||||||
frad->stats.rx_dropped++;
|
frad->stats.rx_dropped++;
|
||||||
return NET_RX_DROP;
|
return NET_RX_DROP;
|
||||||
}
|
}
|
||||||
|
|
@ -1018,8 +993,6 @@ static int fr_rx(struct sk_buff *skb)
|
||||||
return NET_RX_DROP;
|
return NET_RX_DROP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void fr_start(struct net_device *dev)
|
static void fr_start(struct net_device *dev)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||||
|
|
@ -1040,11 +1013,11 @@ static void fr_start(struct net_device *dev)
|
||||||
/* First poll after 1 s */
|
/* First poll after 1 s */
|
||||||
state(hdlc)->timer.expires = jiffies + HZ;
|
state(hdlc)->timer.expires = jiffies + HZ;
|
||||||
add_timer(&state(hdlc)->timer);
|
add_timer(&state(hdlc)->timer);
|
||||||
} else
|
} else {
|
||||||
fr_set_link_state(1, dev);
|
fr_set_link_state(1, dev);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void fr_stop(struct net_device *dev)
|
static void fr_stop(struct net_device *dev)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||||
|
|
@ -1056,7 +1029,6 @@ static void fr_stop(struct net_device *dev)
|
||||||
fr_set_link_state(0, dev);
|
fr_set_link_state(0, dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void fr_close(struct net_device *dev)
|
static void fr_close(struct net_device *dev)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||||
|
|
@ -1071,7 +1043,6 @@ static void fr_close(struct net_device *dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void pvc_setup(struct net_device *dev)
|
static void pvc_setup(struct net_device *dev)
|
||||||
{
|
{
|
||||||
dev->type = ARPHRD_DLCI;
|
dev->type = ARPHRD_DLCI;
|
||||||
|
|
@ -1095,7 +1066,8 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
int used;
|
int used;
|
||||||
|
|
||||||
if ((pvc = add_pvc(frad, dlci)) == NULL) {
|
pvc = add_pvc(frad, dlci);
|
||||||
|
if (!pvc) {
|
||||||
netdev_warn(frad, "Memory squeeze on fr_add_pvc()\n");
|
netdev_warn(frad, "Memory squeeze on fr_add_pvc()\n");
|
||||||
return -ENOBUFS;
|
return -ENOBUFS;
|
||||||
}
|
}
|
||||||
|
|
@ -1121,7 +1093,7 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)
|
||||||
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
||||||
eth_hw_addr_random(dev);
|
eth_hw_addr_random(dev);
|
||||||
} else {
|
} else {
|
||||||
*(__be16*)dev->dev_addr = htons(dlci);
|
*(__be16 *)dev->dev_addr = htons(dlci);
|
||||||
dlci_to_q922(dev->broadcast, dlci);
|
dlci_to_q922(dev->broadcast, dlci);
|
||||||
}
|
}
|
||||||
dev->netdev_ops = &pvc_ops;
|
dev->netdev_ops = &pvc_ops;
|
||||||
|
|
@ -1147,17 +1119,17 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int fr_del_pvc(hdlc_device *hdlc, unsigned int dlci, int type)
|
static int fr_del_pvc(hdlc_device *hdlc, unsigned int dlci, int type)
|
||||||
{
|
{
|
||||||
struct pvc_device *pvc;
|
struct pvc_device *pvc;
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
|
|
||||||
if ((pvc = find_pvc(hdlc, dlci)) == NULL)
|
pvc = find_pvc(hdlc, dlci);
|
||||||
|
if (!pvc)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
if ((dev = *get_dev_p(pvc, type)) == NULL)
|
dev = *get_dev_p(pvc, type);
|
||||||
|
if (!dev)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
if (dev->flags & IFF_UP)
|
if (dev->flags & IFF_UP)
|
||||||
|
|
@ -1174,12 +1146,11 @@ static int fr_del_pvc(hdlc_device *hdlc, unsigned int dlci, int type)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void fr_destroy(struct net_device *frad)
|
static void fr_destroy(struct net_device *frad)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(frad);
|
hdlc_device *hdlc = dev_to_hdlc(frad);
|
||||||
struct pvc_device *pvc = state(hdlc)->first_pvc;
|
struct pvc_device *pvc = state(hdlc)->first_pvc;
|
||||||
|
|
||||||
state(hdlc)->first_pvc = NULL; /* All PVCs destroyed */
|
state(hdlc)->first_pvc = NULL; /* All PVCs destroyed */
|
||||||
state(hdlc)->dce_pvc_count = 0;
|
state(hdlc)->dce_pvc_count = 0;
|
||||||
state(hdlc)->dce_changed = 1;
|
state(hdlc)->dce_changed = 1;
|
||||||
|
|
@ -1198,7 +1169,6 @@ static void fr_destroy(struct net_device *frad)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct hdlc_proto proto = {
|
static struct hdlc_proto proto = {
|
||||||
.close = fr_close,
|
.close = fr_close,
|
||||||
.start = fr_start,
|
.start = fr_start,
|
||||||
|
|
@ -1209,7 +1179,6 @@ static struct hdlc_proto proto = {
|
||||||
.module = THIS_MODULE,
|
.module = THIS_MODULE,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static int fr_ioctl(struct net_device *dev, struct ifreq *ifr)
|
static int fr_ioctl(struct net_device *dev, struct ifreq *ifr)
|
||||||
{
|
{
|
||||||
fr_proto __user *fr_s = ifr->ifr_settings.ifs_ifsu.fr;
|
fr_proto __user *fr_s = ifr->ifr_settings.ifs_ifsu.fr;
|
||||||
|
|
@ -1259,7 +1228,8 @@ static int fr_ioctl(struct net_device *dev, struct ifreq *ifr)
|
||||||
new_settings.dce != 1))
|
new_settings.dce != 1))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
result=hdlc->attach(dev, ENCODING_NRZ,PARITY_CRC16_PR1_CCITT);
|
result = hdlc->attach(dev, ENCODING_NRZ,
|
||||||
|
PARITY_CRC16_PR1_CCITT);
|
||||||
if (result)
|
if (result)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
|
@ -1309,20 +1279,17 @@ static int fr_ioctl(struct net_device *dev, struct ifreq *ifr)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int __init mod_init(void)
|
static int __init mod_init(void)
|
||||||
{
|
{
|
||||||
register_hdlc_protocol(&proto);
|
register_hdlc_protocol(&proto);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void __exit mod_exit(void)
|
static void __exit mod_exit(void)
|
||||||
{
|
{
|
||||||
unregister_hdlc_protocol(&proto);
|
unregister_hdlc_protocol(&proto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
module_init(mod_init);
|
module_init(mod_init);
|
||||||
module_exit(mod_exit);
|
module_exit(mod_exit);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue