Commit ff7512e1 authored by Al Viro's avatar Al Viro Committed by David S. Miller

[ATM]: fix broken uses of NIPQUAD in net/atm

NIPQUAD expects an l-value of type __be32, _NOT_ a pointer to __be32.
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8ca84481
...@@ -229,20 +229,15 @@ int atm_mpoa_delete_qos(struct atm_mpoa_qos *entry) ...@@ -229,20 +229,15 @@ int atm_mpoa_delete_qos(struct atm_mpoa_qos *entry)
/* this is buggered - we need locking for qos_head */ /* this is buggered - we need locking for qos_head */
void atm_mpoa_disp_qos(struct seq_file *m) void atm_mpoa_disp_qos(struct seq_file *m)
{ {
unsigned char *ip;
char ipaddr[16];
struct atm_mpoa_qos *qos; struct atm_mpoa_qos *qos;
qos = qos_head; qos = qos_head;
seq_printf(m, "QoS entries for shortcuts:\n"); seq_printf(m, "QoS entries for shortcuts:\n");
seq_printf(m, "IP address\n TX:max_pcr pcr min_pcr max_cdv max_sdu\n RX:max_pcr pcr min_pcr max_cdv max_sdu\n"); seq_printf(m, "IP address\n TX:max_pcr pcr min_pcr max_cdv max_sdu\n RX:max_pcr pcr min_pcr max_cdv max_sdu\n");
ipaddr[sizeof(ipaddr)-1] = '\0';
while (qos != NULL) { while (qos != NULL) {
ip = (unsigned char *)&qos->ipaddr;
sprintf(ipaddr, "%u.%u.%u.%u", NIPQUAD(ip));
seq_printf(m, "%u.%u.%u.%u\n %-7d %-7d %-7d %-7d %-7d\n %-7d %-7d %-7d %-7d %-7d\n", seq_printf(m, "%u.%u.%u.%u\n %-7d %-7d %-7d %-7d %-7d\n %-7d %-7d %-7d %-7d %-7d\n",
NIPQUAD(ipaddr), NIPQUAD(qos->ipaddr),
qos->qos.txtp.max_pcr, qos->qos.txtp.pcr, qos->qos.txtp.min_pcr, qos->qos.txtp.max_cdv, qos->qos.txtp.max_sdu, qos->qos.txtp.max_pcr, qos->qos.txtp.pcr, qos->qos.txtp.min_pcr, qos->qos.txtp.max_cdv, qos->qos.txtp.max_sdu,
qos->qos.rxtp.max_pcr, qos->qos.rxtp.pcr, qos->qos.rxtp.min_pcr, qos->qos.rxtp.max_cdv, qos->qos.rxtp.max_sdu); qos->qos.rxtp.max_pcr, qos->qos.rxtp.pcr, qos->qos.rxtp.min_pcr, qos->qos.rxtp.max_cdv, qos->qos.rxtp.max_sdu);
qos = qos->next; qos = qos->next;
...@@ -1083,7 +1078,6 @@ static void MPOA_trigger_rcvd(struct k_message *msg, struct mpoa_client *mpc) ...@@ -1083,7 +1078,6 @@ static void MPOA_trigger_rcvd(struct k_message *msg, struct mpoa_client *mpc)
static void check_qos_and_open_shortcut(struct k_message *msg, struct mpoa_client *client, in_cache_entry *entry) static void check_qos_and_open_shortcut(struct k_message *msg, struct mpoa_client *client, in_cache_entry *entry)
{ {
uint32_t dst_ip = msg->content.in_info.in_dst_ip; uint32_t dst_ip = msg->content.in_info.in_dst_ip;
unsigned char *ip __attribute__ ((unused)) = (unsigned char *)&dst_ip;
struct atm_mpoa_qos *qos = atm_mpoa_search_qos(dst_ip); struct atm_mpoa_qos *qos = atm_mpoa_search_qos(dst_ip);
eg_cache_entry *eg_entry = client->eg_ops->get_by_src_ip(dst_ip, client); eg_cache_entry *eg_entry = client->eg_ops->get_by_src_ip(dst_ip, client);
...@@ -1097,7 +1091,7 @@ static void check_qos_and_open_shortcut(struct k_message *msg, struct mpoa_clien ...@@ -1097,7 +1091,7 @@ static void check_qos_and_open_shortcut(struct k_message *msg, struct mpoa_clien
entry->shortcut = eg_entry->shortcut; entry->shortcut = eg_entry->shortcut;
} }
if(entry->shortcut){ if(entry->shortcut){
dprintk("mpoa: (%s) using egress SVC to reach %u.%u.%u.%u\n",client->dev->name, NIPQUAD(ip)); dprintk("mpoa: (%s) using egress SVC to reach %u.%u.%u.%u\n",client->dev->name, NIPQUAD(dst_ip));
client->eg_ops->put(eg_entry); client->eg_ops->put(eg_entry);
return; return;
} }
...@@ -1123,8 +1117,7 @@ static void MPOA_res_reply_rcvd(struct k_message *msg, struct mpoa_client *mpc) ...@@ -1123,8 +1117,7 @@ static void MPOA_res_reply_rcvd(struct k_message *msg, struct mpoa_client *mpc)
uint32_t dst_ip = msg->content.in_info.in_dst_ip; uint32_t dst_ip = msg->content.in_info.in_dst_ip;
in_cache_entry *entry = mpc->in_ops->get(dst_ip, mpc); in_cache_entry *entry = mpc->in_ops->get(dst_ip, mpc);
ip = (unsigned char *)&dst_ip; dprintk("mpoa: (%s) MPOA_res_reply_rcvd: ip %u.%u.%u.%u\n", mpc->dev->name, NIPQUAD(dst_ip));
dprintk("mpoa: (%s) MPOA_res_reply_rcvd: ip %u.%u.%u.%u\n", mpc->dev->name, NIPQUAD(ip));
ddprintk("mpoa: (%s) MPOA_res_reply_rcvd() entry = %p", mpc->dev->name, entry); ddprintk("mpoa: (%s) MPOA_res_reply_rcvd() entry = %p", mpc->dev->name, entry);
if(entry == NULL){ if(entry == NULL){
printk("\nmpoa: (%s) ARGH, received res. reply for an entry that doesn't exist.\n", mpc->dev->name); printk("\nmpoa: (%s) ARGH, received res. reply for an entry that doesn't exist.\n", mpc->dev->name);
......
...@@ -223,7 +223,6 @@ static void in_cache_remove_entry(in_cache_entry *entry, ...@@ -223,7 +223,6 @@ static void in_cache_remove_entry(in_cache_entry *entry,
but an easy one... */ but an easy one... */
static void clear_count_and_expired(struct mpoa_client *client) static void clear_count_and_expired(struct mpoa_client *client)
{ {
unsigned char *ip;
in_cache_entry *entry, *next_entry; in_cache_entry *entry, *next_entry;
struct timeval now; struct timeval now;
...@@ -236,8 +235,7 @@ static void clear_count_and_expired(struct mpoa_client *client) ...@@ -236,8 +235,7 @@ static void clear_count_and_expired(struct mpoa_client *client)
next_entry = entry->next; next_entry = entry->next;
if((now.tv_sec - entry->tv.tv_sec) if((now.tv_sec - entry->tv.tv_sec)
> entry->ctrl_info.holding_time){ > entry->ctrl_info.holding_time){
ip = (unsigned char*)&entry->ctrl_info.in_dst_ip; dprintk("mpoa: mpoa_caches.c: holding time expired, ip = %u.%u.%u.%u\n", NIPQUAD(entry->ctrl_info.in_dst_ip));
dprintk("mpoa: mpoa_caches.c: holding time expired, ip = %u.%u.%u.%u\n", NIPQUAD(ip));
client->in_ops->remove_entry(entry, client); client->in_ops->remove_entry(entry, client);
} }
entry = next_entry; entry = next_entry;
...@@ -455,7 +453,6 @@ static void eg_cache_remove_entry(eg_cache_entry *entry, ...@@ -455,7 +453,6 @@ static void eg_cache_remove_entry(eg_cache_entry *entry,
static eg_cache_entry *eg_cache_add_entry(struct k_message *msg, struct mpoa_client *client) static eg_cache_entry *eg_cache_add_entry(struct k_message *msg, struct mpoa_client *client)
{ {
unsigned char *ip;
eg_cache_entry *entry = kmalloc(sizeof(eg_cache_entry), GFP_KERNEL); eg_cache_entry *entry = kmalloc(sizeof(eg_cache_entry), GFP_KERNEL);
if (entry == NULL) { if (entry == NULL) {
...@@ -463,8 +460,7 @@ static eg_cache_entry *eg_cache_add_entry(struct k_message *msg, struct mpoa_cli ...@@ -463,8 +460,7 @@ static eg_cache_entry *eg_cache_add_entry(struct k_message *msg, struct mpoa_cli
return NULL; return NULL;
} }
ip = (unsigned char *)&msg->content.eg_info.eg_dst_ip; dprintk("mpoa: mpoa_caches.c: adding an egress entry, ip = %u.%u.%u.%u, this should be our IP\n", NIPQUAD(msg->content.eg_info.eg_dst_ip));
dprintk("mpoa: mpoa_caches.c: adding an egress entry, ip = %u.%u.%u.%u, this should be our IP\n", NIPQUAD(ip));
memset(entry, 0, sizeof(eg_cache_entry)); memset(entry, 0, sizeof(eg_cache_entry));
atomic_set(&entry->use, 1); atomic_set(&entry->use, 1);
...@@ -481,8 +477,8 @@ static eg_cache_entry *eg_cache_add_entry(struct k_message *msg, struct mpoa_cli ...@@ -481,8 +477,8 @@ static eg_cache_entry *eg_cache_add_entry(struct k_message *msg, struct mpoa_cli
do_gettimeofday(&(entry->tv)); do_gettimeofday(&(entry->tv));
entry->entry_state = EGRESS_RESOLVED; entry->entry_state = EGRESS_RESOLVED;
dprintk("mpoa: mpoa_caches.c: new_eg_cache_entry cache_id %lu\n", ntohl(entry->ctrl_info.cache_id)); dprintk("mpoa: mpoa_caches.c: new_eg_cache_entry cache_id %lu\n", ntohl(entry->ctrl_info.cache_id));
ip = (unsigned char *)&entry->ctrl_info.mps_ip; dprintk("mpoa: mpoa_caches.c: mps_ip = %u.%u.%u.%u\n",
dprintk("mpoa: mpoa_caches.c: mps_ip = %u.%u.%u.%u\n", NIPQUAD(ip)); NIPQUAD(entry->ctrl_info.mps_ip));
atomic_inc(&entry->use); atomic_inc(&entry->use);
write_unlock_irq(&client->egress_lock); write_unlock_irq(&client->egress_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment