* [PATCH] eth1394: endian fixes
@ 2006-05-19 13:25 Alexey Dobriyan
2006-05-27 10:05 ` Stefan Richter
0 siblings, 1 reply; 6+ messages in thread
From: Alexey Dobriyan @ 2006-05-19 13:25 UTC (permalink / raw)
To: netdev; +Cc: linux1394-devel
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---
drivers/ieee1394/eth1394.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/drivers/ieee1394/eth1394.c
+++ 1/drivers/ieee1394/eth1394.c
@@ -935,7 +935,7 @@ static inline u16 ether1394_parse_encap(
*(u32*)arp_ptr = arp1394->sip; /* move sender IP addr */
arp_ptr += arp->ar_pln; /* skip over sender IP addr */
- if (arp->ar_op == 1)
+ if (arp->ar_op == htons(1))
/* just set ARP req target unique ID to 0 */
*((u64*)arp_ptr) = 0;
else
@@ -1395,7 +1395,7 @@ static inline void ether1394_arp_to_1394
/* We need to encapsulate the standard header with our own. We use the
* ethernet header's proto for our own. */
static inline unsigned int ether1394_encapsulate_prep(unsigned int max_payload,
- int proto,
+ __be16 proto,
union eth1394_hdr *hdr,
u16 dg_size, u16 dgl)
{
@@ -1626,7 +1626,7 @@ static int ether1394_tx (struct sk_buff
gfp_t kmflags = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL;
struct eth1394hdr *eth;
struct eth1394_priv *priv = netdev_priv(dev);
- int proto;
+ __be16 proto;
unsigned long flags;
nodeid_t dest_node;
eth1394_tx_type tx_type;
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] eth1394: endian fixes 2006-05-19 13:25 [PATCH] eth1394: endian fixes Alexey Dobriyan @ 2006-05-27 10:05 ` Stefan Richter 2006-05-27 16:12 ` Alexey Dobriyan 2006-05-27 16:40 ` Stephen Hemminger 0 siblings, 2 replies; 6+ messages in thread From: Stefan Richter @ 2006-05-27 10:05 UTC (permalink / raw) To: Alexey Dobriyan; +Cc: netdev, linux1394-devel Alexey Dobriyan wrote on 2006-05-16: > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> ... > @@ -935,7 +935,7 @@ static inline u16 ether1394_parse_encap( > *(u32*)arp_ptr = arp1394->sip; /* move sender IP addr */ > arp_ptr += arp->ar_pln; /* skip over sender IP addr */ > > - if (arp->ar_op == 1) > + if (arp->ar_op == htons(1)) > /* just set ARP req target unique ID to 0 */ > *((u64*)arp_ptr) = 0; > else I suggest __constant_htons(ARPOP_REQUEST). > @@ -1395,7 +1395,7 @@ static inline void ether1394_arp_to_1394 > /* We need to encapsulate the standard header with our own. We use the > * ethernet header's proto for our own. */ > static inline unsigned int ether1394_encapsulate_prep(unsigned int max_payload, > - int proto, > + __be16 proto, > union eth1394_hdr *hdr, > u16 dg_size, u16 dgl) > { > @@ -1626,7 +1626,7 @@ static int ether1394_tx (struct sk_buff > gfp_t kmflags = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL; > struct eth1394hdr *eth; > struct eth1394_priv *priv = netdev_priv(dev); > - int proto; > + __be16 proto; > unsigned long flags; > nodeid_t dest_node; > eth1394_tx_type tx_type; Alexey, I am afraid none of the current 1394 developers is actively using eth1394. Did you have the chance to test your patch on different platforms and with different peer OSs/platforms? Also, did someone of the netdev guys already forward the patch (since we 1394 people are slow and eth1394 is marked unmaintained)? If not, I could send it along with a few other 1394 patches to akpm soon. -- Stefan Richter -=====-=-==- -=-= ==-== http://arcgraph.de/sr/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] eth1394: endian fixes 2006-05-27 10:05 ` Stefan Richter @ 2006-05-27 16:12 ` Alexey Dobriyan 2006-06-10 16:46 ` Stefan Richter 2006-05-27 16:40 ` Stephen Hemminger 1 sibling, 1 reply; 6+ messages in thread From: Alexey Dobriyan @ 2006-05-27 16:12 UTC (permalink / raw) To: Stefan Richter; +Cc: netdev, linux1394-devel On Sat, May 27, 2006 at 12:05:40PM +0200, Stefan Richter wrote: > Alexey Dobriyan wrote on 2006-05-16: > >Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> > ... > >@@ -935,7 +935,7 @@ static inline u16 ether1394_parse_encap( > > *(u32*)arp_ptr = arp1394->sip; /* move sender IP addr */ > > arp_ptr += arp->ar_pln; /* skip over sender IP addr > > */ > > > >- if (arp->ar_op == 1) > >+ if (arp->ar_op == htons(1)) > > /* just set ARP req target unique ID to 0 */ > > *((u64*)arp_ptr) = 0; > > else > > I suggest __constant_htons(ARPOP_REQUEST). OK. htons(ARPOP_REQUEST) should be enough. __constant_* really needed in initializators. Updated patch below. > Alexey, I am afraid none of the current 1394 developers is actively > using eth1394. Did you have the chance to test your patch on different > platforms and with different peer OSs/platforms? Unfortunately not. > Also, did someone of the netdev guys already forward the patch (since we > 1394 people are slow and eth1394 is marked unmaintained)? If not, I > could send it along with a few other 1394 patches to akpm soon. [PATCH] eth1394: endian fixes Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> --- drivers/ieee1394/eth1394.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/drivers/ieee1394/eth1394.c +++ 1/drivers/ieee1394/eth1394.c @@ -935,7 +935,7 @@ static inline u16 ether1394_parse_encap( *(u32*)arp_ptr = arp1394->sip; /* move sender IP addr */ arp_ptr += arp->ar_pln; /* skip over sender IP addr */ - if (arp->ar_op == 1) + if (arp->ar_op == htons(ARPOP_REQUEST)) /* just set ARP req target unique ID to 0 */ *((u64*)arp_ptr) = 0; else @@ -1395,7 +1395,7 @@ static inline void ether1394_arp_to_1394 /* We need to encapsulate the standard header with our own. We use the * ethernet header's proto for our own. */ static inline unsigned int ether1394_encapsulate_prep(unsigned int max_payload, - int proto, + __be16 proto, union eth1394_hdr *hdr, u16 dg_size, u16 dgl) { @@ -1626,7 +1626,7 @@ static int ether1394_tx (struct sk_buff gfp_t kmflags = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL; struct eth1394hdr *eth; struct eth1394_priv *priv = netdev_priv(dev); - int proto; + __be16 proto; unsigned long flags; nodeid_t dest_node; eth1394_tx_type tx_type; ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] eth1394: endian fixes 2006-05-27 16:12 ` Alexey Dobriyan @ 2006-06-10 16:46 ` Stefan Richter 0 siblings, 0 replies; 6+ messages in thread From: Stefan Richter @ 2006-06-10 16:46 UTC (permalink / raw) To: Alexey Dobriyan; +Cc: netdev, linux1394-devel Alexey Dobriyan wrote on 2006-05-27: > On Sat, May 27, 2006 at 12:05:40PM +0200, Stefan Richter wrote: >> Did you have the chance to test your patch on different >> platforms and with different peer OSs/platforms? > > Unfortunately not. The patch works OK on an x86/Linux host with x86/WinXP peer and ppc32/OSX peer. Thanks, -- Stefan Richter -=====-=-==- -==- -=-=- http://arcgraph.de/sr/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] eth1394: endian fixes 2006-05-27 10:05 ` Stefan Richter 2006-05-27 16:12 ` Alexey Dobriyan @ 2006-05-27 16:40 ` Stephen Hemminger 2006-06-10 21:44 ` [PATCH 2.6.17-rc6-mm2] eth1394: replace __constant_htons by htons Stefan Richter 1 sibling, 1 reply; 6+ messages in thread From: Stephen Hemminger @ 2006-05-27 16:40 UTC (permalink / raw) To: Stefan Richter; +Cc: Alexey Dobriyan, netdev, linux1394-devel On Sat, 27 May 2006 12:05:40 +0200 Stefan Richter <stefanr@s5r6.in-berlin.de> wrote: > Alexey Dobriyan wrote on 2006-05-16: > > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> > ... > > @@ -935,7 +935,7 @@ static inline u16 ether1394_parse_encap( > > *(u32*)arp_ptr = arp1394->sip; /* move sender IP addr */ > > arp_ptr += arp->ar_pln; /* skip over sender IP addr */ > > > > - if (arp->ar_op == 1) > > + if (arp->ar_op == htons(1)) > > /* just set ARP req target unique ID to 0 */ > > *((u64*)arp_ptr) = 0; > > else > > I suggest __constant_htons(ARPOP_REQUEST). No. That is only for initializers and switch cases. Otherwise, it adds unnecessary verbosity. The htons() does the right thing automatically. > > > @@ -1395,7 +1395,7 @@ static inline void ether1394_arp_to_1394 > > /* We need to encapsulate the standard header with our own. We use the > > * ethernet header's proto for our own. */ > > static inline unsigned int ether1394_encapsulate_prep(unsigned int max_payload, > > - int proto, > > + __be16 proto, > > union eth1394_hdr *hdr, > > u16 dg_size, u16 dgl) > > { > > @@ -1626,7 +1626,7 @@ static int ether1394_tx (struct sk_buff > > gfp_t kmflags = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL; > > struct eth1394hdr *eth; > > struct eth1394_priv *priv = netdev_priv(dev); > > - int proto; > > + __be16 proto; > > unsigned long flags; > > nodeid_t dest_node; > > eth1394_tx_type tx_type; > > Alexey, I am afraid none of the current 1394 developers is actively > using eth1394. Did you have the chance to test your patch on different > platforms and with different peer OSs/platforms? > > Also, did someone of the netdev guys already forward the patch (since we > 1394 people are slow and eth1394 is marked unmaintained)? If not, I > could send it along with a few other 1394 patches to akpm soon. > -- > Stefan Richter > -=====-=-==- -=-= ==-== > http://arcgraph.de/sr/ > - > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2.6.17-rc6-mm2] eth1394: replace __constant_htons by htons 2006-05-27 16:40 ` Stephen Hemminger @ 2006-06-10 21:44 ` Stefan Richter 0 siblings, 0 replies; 6+ messages in thread From: Stefan Richter @ 2006-06-10 21:44 UTC (permalink / raw) To: linux1394-devel; +Cc: netdev, Alexey Dobriyan ...and __constant_ntohs, __constant_ntohl, __constant_cpu_to_be32 too where possible. Htons and friends are resolved to constants in these places anyway. Also fix an endianess glitch in a log message, spotted by Alexey Dobriyan. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> --- drivers/ieee1394/eth1394.c | 23 +++++++++++------------ 1 files changed, 11 insertions(+), 12 deletions(-) Index: linux-2.6.17-rc6-mm2/drivers/ieee1394/eth1394.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/drivers/ieee1394/eth1394.c 2006-06-10 21:18:28.000000000 +0200 +++ linux-2.6.17-rc6-mm2/drivers/ieee1394/eth1394.c 2006-06-10 21:33:59.000000000 +0200 @@ -770,7 +770,7 @@ static int ether1394_rebuild_header(stru default: ETH1394_PRINT(KERN_DEBUG, dev->name, "unable to resolve type %04x addresses.\n", - eth->h_proto); + ntohs(eth->h_proto)); break; } @@ -792,9 +792,8 @@ static int ether1394_header_cache(struct (16 - ETH1394_HLEN)); struct net_device *dev = neigh->dev; - if (type == __constant_htons(ETH_P_802_3)) { + if (type == htons(ETH_P_802_3)) return -1; - } eth->h_proto = type; memcpy(eth->h_dest, neigh->ha, dev->addr_len); @@ -883,7 +882,7 @@ static inline u16 ether1394_parse_encap( /* If this is an ARP packet, convert it. First, we want to make * use of some of the fields, since they tell us a little bit * about the sending machine. */ - if (ether_type == __constant_htons (ETH_P_ARP)) { + if (ether_type == htons(ETH_P_ARP)) { struct eth1394_arp *arp1394 = (struct eth1394_arp*)skb->data; struct arphdr *arp = (struct arphdr *)skb->data; unsigned char *arp_ptr = (unsigned char *)(arp + 1); @@ -939,8 +938,8 @@ static inline u16 ether1394_parse_encap( } /* Now add the ethernet header. */ - if (dev->hard_header (skb, dev, __constant_ntohs (ether_type), - &dest_hw, NULL, skb->len) >= 0) + if (dev->hard_header(skb, dev, ntohs(ether_type), &dest_hw, NULL, + skb->len) >= 0) ret = ether1394_type_trans(skb, dev); return ret; @@ -1509,8 +1508,8 @@ static inline void ether1394_prep_gasp_p p->data = ((quadlet_t*)skb->data) - 2; p->data[0] = cpu_to_be32((priv->host->node_id << 16) | ETHER1394_GASP_SPECIFIER_ID_HI); - p->data[1] = __constant_cpu_to_be32((ETHER1394_GASP_SPECIFIER_ID_LO << 24) | - ETHER1394_GASP_VERSION); + p->data[1] = cpu_to_be32((ETHER1394_GASP_SPECIFIER_ID_LO << 24) | + ETHER1394_GASP_VERSION); /* Setting the node id to ALL_NODES (not LOCAL_BUS | ALL_NODES) * prevents hpsb_send_packet() from setting the speed to an arbitrary @@ -1665,9 +1664,9 @@ static int ether1394_tx (struct sk_buff /* Set the transmission type for the packet. ARP packets and IP * broadcast packets are sent via GASP. */ if (memcmp(eth->h_dest, dev->broadcast, ETH1394_ALEN) == 0 || - proto == __constant_htons(ETH_P_ARP) || - (proto == __constant_htons(ETH_P_IP) && - IN_MULTICAST(__constant_ntohl(skb->nh.iph->daddr)))) { + proto == htons(ETH_P_ARP) || + (proto == htons(ETH_P_IP) && + IN_MULTICAST(ntohl(skb->nh.iph->daddr)))) { tx_type = ETH1394_GASP; dest_node = LOCAL_BUS | ALL_NODES; max_payload = priv->bc_maxpayload - ETHER1394_GASP_OVERHEAD; @@ -1699,7 +1698,7 @@ static int ether1394_tx (struct sk_buff } /* If this is an ARP packet, convert it */ - if (proto == __constant_htons (ETH_P_ARP)) + if (proto == htons(ETH_P_ARP)) ether1394_arp_to_1394arp (skb, dev); ptask->hdr.words.word1 = 0; ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2006-06-10 21:44 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-05-19 13:25 [PATCH] eth1394: endian fixes Alexey Dobriyan 2006-05-27 10:05 ` Stefan Richter 2006-05-27 16:12 ` Alexey Dobriyan 2006-06-10 16:46 ` Stefan Richter 2006-05-27 16:40 ` Stephen Hemminger 2006-06-10 21:44 ` [PATCH 2.6.17-rc6-mm2] eth1394: replace __constant_htons by htons Stefan Richter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox