From 4aec72b91b0654ae71e07cd1bcb5f2f740507b32 Mon Sep 17 00:00:00 2001 From: Krishna Kumar Date: Tue, 22 Jul 2003 12:58:10 -0700 Subject: [IPV6]: Reporting of prefix routes via rtnetlink. --- include/linux/ipv6_route.h | 1 + include/linux/rtnetlink.h | 1 + 2 files changed, 2 insertions(+) (limited to 'include') diff --git a/include/linux/ipv6_route.h b/include/linux/ipv6_route.h index eacfa6c80f0e..46d8b7e8b1aa 100644 --- a/include/linux/ipv6_route.h +++ b/include/linux/ipv6_route.h @@ -16,6 +16,7 @@ #define RTF_DEFAULT 0x00010000 /* default - learned via ND */ #define RTF_ALLONLINK 0x00020000 /* fallback, no routers on link */ #define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ +#define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */ #define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ #define RTF_EXPIRES 0x00400000 diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 788132027e48..fe336b23e5cb 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h @@ -168,6 +168,7 @@ enum rt_scope_t #define RTM_F_NOTIFY 0x100 /* Notify user of route change */ #define RTM_F_CLONED 0x200 /* This route is cloned */ #define RTM_F_EQUALIZE 0x400 /* Multipath equalizer: NI */ +#define RTM_F_PREFIX 0x800 /* Prefix addresses */ /* Reserved table identifiers */ -- cgit v1.2.3 From bca415fe90426dde045f8031775d0e050a324c53 Mon Sep 17 00:00:00 2001 From: Jan Zuchhold Date: Thu, 24 Jul 2003 20:31:52 -0700 Subject: [TG3]: Recognize Altima AC1001 device IDs. --- drivers/net/tg3.c | 2 ++ drivers/pci/pci.ids | 1 + include/linux/pci_ids.h | 1 + 3 files changed, 4 insertions(+) (limited to 'include') diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 0ba668a78784..c57a51839e9e 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c @@ -148,6 +148,8 @@ static struct pci_device_id tg3_pci_tbl[] __devinitdata = { PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, + { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1001, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC9100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, { 0, } diff --git a/drivers/pci/pci.ids b/drivers/pci/pci.ids index 0b227fe0059f..a352aa961c09 100644 --- a/drivers/pci/pci.ids +++ b/drivers/pci/pci.ids @@ -5831,6 +5831,7 @@ 1737 Linksys 173b Altima (nee Broadcom) 03e8 AC1000 Gigabit Ethernet + 03e9 AC1001 Gigabit Ethernet 03ea AC9100 Gigabit Ethernet 1743 Peppercon AG 8139 ROL/F-100 Fast Ethernet Adapter with ROL diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 26a763bea787..ef399d6d4c08 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -1756,6 +1756,7 @@ #define PCI_VENDOR_ID_ALTIMA 0x173b #define PCI_DEVICE_ID_ALTIMA_AC1000 0x03e8 +#define PCI_DEVICE_ID_ALTIMA_AC1000 0x03e9 #define PCI_DEVICE_ID_ALTIMA_AC9100 0x03ea #define PCI_VENDOR_ID_SYMPHONY 0x1c1c -- cgit v1.2.3 From 4a6a51611985b3bd97a3be78c4b398635c2f039b Mon Sep 17 00:00:00 2001 From: Bart De Schuymer Date: Thu, 24 Jul 2003 23:31:55 -0700 Subject: [EBTABLES]: Make it work on 32-on-64 platforms. --- include/linux/netfilter_bridge/ebtables.h | 46 ++++++++++++++++--------------- net/bridge/netfilter/ebt_arp.c | 2 +- net/bridge/netfilter/ebt_dnat.c | 2 +- net/bridge/netfilter/ebt_ip.c | 2 +- net/bridge/netfilter/ebt_log.c | 2 +- net/bridge/netfilter/ebt_mark.c | 2 +- net/bridge/netfilter/ebt_mark_m.c | 2 +- net/bridge/netfilter/ebt_pkttype.c | 2 +- net/bridge/netfilter/ebt_redirect.c | 2 +- net/bridge/netfilter/ebt_snat.c | 2 +- net/bridge/netfilter/ebt_stp.c | 2 +- net/bridge/netfilter/ebt_vlan.c | 4 +-- 12 files changed, 36 insertions(+), 34 deletions(-) (limited to 'include') diff --git a/include/linux/netfilter_bridge/ebtables.h b/include/linux/netfilter_bridge/ebtables.h index 1056e450ef14..b9fcbf85f047 100644 --- a/include/linux/netfilter_bridge/ebtables.h +++ b/include/linux/netfilter_bridge/ebtables.h @@ -33,6 +33,23 @@ struct ebt_counter uint64_t bcnt; }; +struct ebt_replace +{ + char name[EBT_TABLE_MAXNAMELEN]; + unsigned int valid_hooks; + /* nr of rules in the table */ + unsigned int nentries; + /* total size of the entries */ + unsigned int entries_size; + /* start of the chains */ + struct ebt_entries *hook_entry[NF_BR_NUMHOOKS]; + /* nr of counters userspace expects back */ + unsigned int num_counters; + /* where the kernel will put the old counters */ + struct ebt_counter *counters; + char *entries; +}; + struct ebt_entries { /* this field is always set to zero * See EBT_ENTRY_OR_ENTRIES. @@ -47,7 +64,7 @@ struct ebt_entries { /* nr. of entries */ unsigned int nentries; /* entry list */ - char data[0]; + char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; /* used for the bitmask of struct ebt_entry */ @@ -87,7 +104,7 @@ struct ebt_entry_match } u; /* size of data */ unsigned int match_size; - unsigned char data[0]; + unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; struct ebt_entry_watcher @@ -98,7 +115,7 @@ struct ebt_entry_watcher } u; /* size of data */ unsigned int watcher_size; - unsigned char data[0]; + unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; struct ebt_entry_target @@ -109,7 +126,7 @@ struct ebt_entry_target } u; /* size of data */ unsigned int target_size; - unsigned char data[0]; + unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; #define EBT_STANDARD_TARGET "standard" @@ -143,24 +160,7 @@ struct ebt_entry { unsigned int target_offset; /* sizeof ebt_entry + matches + watchers + target */ unsigned int next_offset; - unsigned char elems[0]; -}; - -struct ebt_replace -{ - char name[EBT_TABLE_MAXNAMELEN]; - unsigned int valid_hooks; - /* nr of rules in the table */ - unsigned int nentries; - /* total size of the entries */ - unsigned int entries_size; - /* start of the chains */ - struct ebt_entries *hook_entry[NF_BR_NUMHOOKS]; - /* nr of counters userspace expects back */ - unsigned int num_counters; - /* where the kernel will put the old counters */ - struct ebt_counter *counters; - char *entries; + unsigned char elems[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); }; /* {g,s}etsockopt numbers */ @@ -263,6 +263,8 @@ struct ebt_table struct module *me; }; +#define EBT_ALIGN(s) (((s) + (__alignof__(struct ebt_replace)-1)) & \ + ~(__alignof__(struct ebt_replace)-1)) extern int ebt_register_table(struct ebt_table *table); extern void ebt_unregister_table(struct ebt_table *table); extern int ebt_register_match(struct ebt_match *match); diff --git a/net/bridge/netfilter/ebt_arp.c b/net/bridge/netfilter/ebt_arp.c index d63d7206bbcb..eb675848fbc3 100644 --- a/net/bridge/netfilter/ebt_arp.c +++ b/net/bridge/netfilter/ebt_arp.c @@ -99,7 +99,7 @@ static int ebt_arp_check(const char *tablename, unsigned int hookmask, { struct ebt_arp_info *info = (struct ebt_arp_info *)data; - if (datalen != sizeof(struct ebt_arp_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_arp_info))) return -EINVAL; if ((e->ethproto != __constant_htons(ETH_P_ARP) && e->ethproto != __constant_htons(ETH_P_RARP)) || diff --git a/net/bridge/netfilter/ebt_dnat.c b/net/bridge/netfilter/ebt_dnat.c index c8b3357cc090..f9552dfb1655 100644 --- a/net/bridge/netfilter/ebt_dnat.c +++ b/net/bridge/netfilter/ebt_dnat.c @@ -47,7 +47,7 @@ static int ebt_target_dnat_check(const char *tablename, unsigned int hookmask, (hookmask & ~((1 << NF_BR_PRE_ROUTING) | (1 << NF_BR_LOCAL_OUT)))) && (strcmp(tablename, "broute") || hookmask & ~(1 << NF_BR_BROUTING)) ) return -EINVAL; - if (datalen != sizeof(struct ebt_nat_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_nat_info))) return -EINVAL; if (INVALID_TARGET) return -EINVAL; diff --git a/net/bridge/netfilter/ebt_ip.c b/net/bridge/netfilter/ebt_ip.c index 7ef0662f81c6..7bab7d065bd3 100644 --- a/net/bridge/netfilter/ebt_ip.c +++ b/net/bridge/netfilter/ebt_ip.c @@ -75,7 +75,7 @@ static int ebt_ip_check(const char *tablename, unsigned int hookmask, { struct ebt_ip_info *info = (struct ebt_ip_info *)data; - if (datalen != sizeof(struct ebt_ip_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_ip_info))) return -EINVAL; if (e->ethproto != __constant_htons(ETH_P_IP) || e->invflags & EBT_IPROTO) diff --git a/net/bridge/netfilter/ebt_log.c b/net/bridge/netfilter/ebt_log.c index e7a3ef4afe5a..2da7c682744d 100644 --- a/net/bridge/netfilter/ebt_log.c +++ b/net/bridge/netfilter/ebt_log.c @@ -22,7 +22,7 @@ static int ebt_log_check(const char *tablename, unsigned int hookmask, { struct ebt_log_info *info = (struct ebt_log_info *)data; - if (datalen != sizeof(struct ebt_log_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_log_info))) return -EINVAL; if (info->bitmask & ~EBT_LOG_MASK) return -EINVAL; diff --git a/net/bridge/netfilter/ebt_mark.c b/net/bridge/netfilter/ebt_mark.c index b7a87f612983..02c632b4d325 100644 --- a/net/bridge/netfilter/ebt_mark.c +++ b/net/bridge/netfilter/ebt_mark.c @@ -35,7 +35,7 @@ static int ebt_target_mark_check(const char *tablename, unsigned int hookmask, { struct ebt_mark_t_info *info = (struct ebt_mark_t_info *)data; - if (datalen != sizeof(struct ebt_mark_t_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_mark_t_info))) return -EINVAL; if (BASE_CHAIN && info->target == EBT_RETURN) return -EINVAL; diff --git a/net/bridge/netfilter/ebt_mark_m.c b/net/bridge/netfilter/ebt_mark_m.c index c710b4e0be14..625102de1495 100644 --- a/net/bridge/netfilter/ebt_mark_m.c +++ b/net/bridge/netfilter/ebt_mark_m.c @@ -28,7 +28,7 @@ static int ebt_mark_check(const char *tablename, unsigned int hookmask, { struct ebt_mark_m_info *info = (struct ebt_mark_m_info *) data; - if (datalen != sizeof(struct ebt_mark_m_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_mark_m_info))) return -EINVAL; if (info->bitmask & ~EBT_MARK_MASK) return -EINVAL; diff --git a/net/bridge/netfilter/ebt_pkttype.c b/net/bridge/netfilter/ebt_pkttype.c index f6458adea80a..ecd3b42b19b0 100644 --- a/net/bridge/netfilter/ebt_pkttype.c +++ b/net/bridge/netfilter/ebt_pkttype.c @@ -28,7 +28,7 @@ static int ebt_pkttype_check(const char *tablename, unsigned int hookmask, { struct ebt_pkttype_info *info = (struct ebt_pkttype_info *)data; - if (datalen != sizeof(struct ebt_pkttype_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_pkttype_info))) return -EINVAL; if (info->invert != 0 && info->invert != 1) return -EINVAL; diff --git a/net/bridge/netfilter/ebt_redirect.c b/net/bridge/netfilter/ebt_redirect.c index d97d05fdd14f..998bab1c5ef9 100644 --- a/net/bridge/netfilter/ebt_redirect.c +++ b/net/bridge/netfilter/ebt_redirect.c @@ -47,7 +47,7 @@ static int ebt_target_redirect_check(const char *tablename, unsigned int hookmas { struct ebt_redirect_info *info = (struct ebt_redirect_info *)data; - if (datalen != sizeof(struct ebt_redirect_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_redirect_info))) return -EINVAL; if (BASE_CHAIN && info->target == EBT_RETURN) return -EINVAL; diff --git a/net/bridge/netfilter/ebt_snat.c b/net/bridge/netfilter/ebt_snat.c index c457ac90c5c6..ae0f0539c5f0 100644 --- a/net/bridge/netfilter/ebt_snat.c +++ b/net/bridge/netfilter/ebt_snat.c @@ -40,7 +40,7 @@ static int ebt_target_snat_check(const char *tablename, unsigned int hookmask, { struct ebt_nat_info *info = (struct ebt_nat_info *) data; - if (datalen != sizeof(struct ebt_nat_info)) + if (datalen != EBT_ALIGN(sizeof(struct ebt_nat_info))) return -EINVAL; if (BASE_CHAIN && info->target == EBT_RETURN) return -EINVAL; diff --git a/net/bridge/netfilter/ebt_stp.c b/net/bridge/netfilter/ebt_stp.c index 8be478935ba8..d0299efa1001 100644 --- a/net/bridge/netfilter/ebt_stp.c +++ b/net/bridge/netfilter/ebt_stp.c @@ -150,7 +150,7 @@ static int ebt_stp_check(const char *tablename, unsigned int hookmask, const struct ebt_entry *e, void *data, unsigned int datalen) { struct ebt_stp_info *info = (struct ebt_stp_info *)data; - int len = sizeof(struct ebt_stp_info); + int len = EBT_ALIGN(sizeof(struct ebt_stp_info)); uint8_t bridge_ula[6] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 }; uint8_t msk[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; diff --git a/net/bridge/netfilter/ebt_vlan.c b/net/bridge/netfilter/ebt_vlan.c index 54120a771d3e..341af7d5708b 100644 --- a/net/bridge/netfilter/ebt_vlan.c +++ b/net/bridge/netfilter/ebt_vlan.c @@ -35,7 +35,7 @@ MODULE_DESCRIPTION("802.1Q match module (ebtables extension), v" MODULE_LICENSE("GPL"); -#define DEBUG_MSG(...) if (debug) printk (KERN_DEBUG "ebt_vlan: " __VA_ARGS__) +#define DEBUG_MSG(args...) if (debug) printk (KERN_DEBUG "ebt_vlan: " args) #define INV_FLAG(_inv_flag_) (info->invflags & _inv_flag_) ? "!" : "" #define GET_BITMASK(_BIT_MASK_) info->bitmask & _BIT_MASK_ #define SET_BITMASK(_BIT_MASK_) info->bitmask |= _BIT_MASK_ @@ -94,7 +94,7 @@ ebt_check_vlan(const char *tablename, struct ebt_vlan_info *info = (struct ebt_vlan_info *) data; /* Parameters buffer overflow check */ - if (datalen != sizeof(struct ebt_vlan_info)) { + if (datalen != EBT_ALIGN(sizeof(struct ebt_vlan_info))) { DEBUG_MSG ("passed size %d is not eq to ebt_vlan_info (%Zd)\n", datalen, sizeof(struct ebt_vlan_info)); -- cgit v1.2.3 From 3335c2bae5aba76d177ee82192ad91e10213f72a Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Fri, 25 Jul 2003 00:28:37 -0700 Subject: [NET]: Make IFLA_STATS arch independent. --- include/linux/rtnetlink.h | 50 +++++++++++++++++++++++++++++++++++++++++++++++ net/core/rtnetlink.c | 15 +++++++++++--- 2 files changed, 62 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index fe336b23e5cb..3e3a26916a12 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h @@ -459,6 +459,40 @@ struct ifinfomsg unsigned ifi_change; /* IFF_* change mask */ }; +/* The struct should be in sync with struct net_device_stats */ +struct rtnl_link_stats +{ + __u32 rx_packets; /* total packets received */ + __u32 tx_packets; /* total packets transmitted */ + __u32 rx_bytes; /* total bytes received */ + __u32 tx_bytes; /* total bytes transmitted */ + __u32 rx_errors; /* bad packets received */ + __u32 tx_errors; /* packet transmit problems */ + __u32 rx_dropped; /* no space in linux buffers */ + __u32 tx_dropped; /* no space available in linux */ + __u32 multicast; /* multicast packets received */ + __u32 collisions; + + /* detailed rx_errors: */ + __u32 rx_length_errors; + __u32 rx_over_errors; /* receiver ring buff overflow */ + __u32 rx_crc_errors; /* recved pkt with crc error */ + __u32 rx_frame_errors; /* recv'd frame alignment error */ + __u32 rx_fifo_errors; /* recv'r fifo overrun */ + __u32 rx_missed_errors; /* receiver missed packet */ + + /* detailed tx_errors */ + __u32 tx_aborted_errors; + __u32 tx_carrier_errors; + __u32 tx_fifo_errors; + __u32 tx_heartbeat_errors; + __u32 tx_window_errors; + + /* for cslip etc */ + __u32 rx_compressed; + __u32 tx_compressed; +}; + enum { IFLA_UNSPEC, @@ -600,6 +634,22 @@ extern void __rta_fill(struct sk_buff *skb, int attrtype, int attrlen, const voi ({ if (skb_tailroom(skb) < (int)RTA_SPACE(attrlen)) goto rtattr_failure; \ __rta_fill(skb, attrtype, attrlen, data); }) +static inline struct rtattr * +__rta_reserve(struct sk_buff *skb, int attrtype, int attrlen) +{ + struct rtattr *rta; + int size = RTA_LENGTH(attrlen); + + rta = (struct rtattr*)skb_put(skb, RTA_ALIGN(size)); + rta->rta_type = attrtype; + rta->rta_len = size; + return rta; +} + +#define __RTA_PUT(skb, attrtype, attrlen) \ +({ if (skb_tailroom(skb) < (int)RTA_SPACE(attrlen)) goto rtattr_failure; \ + __rta_reserve(skb, attrtype, attrlen); }) + extern void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change); extern struct semaphore rtnl_sem; diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 32e64ed866a3..4215e4a7dcd0 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -191,9 +191,18 @@ static int rtnetlink_fill_ifinfo(struct sk_buff *skb, struct net_device *dev, if (dev->master) RTA_PUT(skb, IFLA_MASTER, sizeof(int), &dev->master->ifindex); if (dev->get_stats) { - struct net_device_stats *stats = dev->get_stats(dev); - if (stats) - RTA_PUT(skb, IFLA_STATS, sizeof(*stats), stats); + unsigned long *stats = (unsigned long*)dev->get_stats(dev); + if (stats) { + struct rtattr *a; + __u32 *s; + int i; + int n = sizeof(struct rtnl_link_stats)/4; + + a = __RTA_PUT(skb, IFLA_STATS, n*4); + s = RTA_DATA(a); + for (i=0; inlmsg_len = skb->tail - b; return skb->len; -- cgit v1.2.3 From 3b5d57287d03af3c151bd381afde5aef070d2da3 Mon Sep 17 00:00:00 2001 From: Maciej Soltysiak Date: Fri, 25 Jul 2003 01:21:56 -0700 Subject: [NETFILTER]: Make REJECT target compliant with RFC 1812. Add support for iptables --reject-with-admin-prohib option of the REJECT target, making it compliant with RFC 1812. --- include/linux/netfilter_ipv4/ipt_REJECT.h | 3 ++- net/ipv4/netfilter/ipt_REJECT.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/linux/netfilter_ipv4/ipt_REJECT.h b/include/linux/netfilter_ipv4/ipt_REJECT.h index ad195e435ba9..4293a1ad1b01 100644 --- a/include/linux/netfilter_ipv4/ipt_REJECT.h +++ b/include/linux/netfilter_ipv4/ipt_REJECT.h @@ -9,7 +9,8 @@ enum ipt_reject_with { IPT_ICMP_ECHOREPLY, IPT_ICMP_NET_PROHIBITED, IPT_ICMP_HOST_PROHIBITED, - IPT_TCP_RESET + IPT_TCP_RESET, + IPT_ICMP_ADMIN_PROHIBITED }; struct ipt_reject_info { diff --git a/net/ipv4/netfilter/ipt_REJECT.c b/net/ipv4/netfilter/ipt_REJECT.c index 72aacefc01d4..c1147531acd2 100644 --- a/net/ipv4/netfilter/ipt_REJECT.c +++ b/net/ipv4/netfilter/ipt_REJECT.c @@ -1,6 +1,7 @@ /* * This is a module which is used for rejecting packets. * Added support for customized reject packets (Jozsef Kadlecsik). + * Added support for ICMP type-3-code-13 (Maciej Soltysiak). [RFC 1812] */ #include #include @@ -387,6 +388,9 @@ static unsigned int reject(struct sk_buff **pskb, case IPT_ICMP_HOST_PROHIBITED: send_unreach(*pskb, ICMP_HOST_ANO); break; + case IPT_ICMP_ADMIN_PROHIBITED: + send_unreach(*pskb, ICMP_PKT_FILTERED); + break; case IPT_TCP_RESET: send_reset(*pskb, hooknum == NF_IP_LOCAL_IN); case IPT_ICMP_ECHOREPLY: -- cgit v1.2.3 From 3c00a346d6e7dc22123e866c5bc370a184b623a1 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Fri, 25 Jul 2003 02:06:39 -0700 Subject: [TG3]: Fix typo in pci_ids.h change. --- include/linux/pci_ids.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 7ee166c2875e..7b54e6b44e81 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -1757,7 +1757,7 @@ #define PCI_VENDOR_ID_ALTIMA 0x173b #define PCI_DEVICE_ID_ALTIMA_AC1000 0x03e8 -#define PCI_DEVICE_ID_ALTIMA_AC1000 0x03e9 +#define PCI_DEVICE_ID_ALTIMA_AC1001 0x03e9 #define PCI_DEVICE_ID_ALTIMA_AC9100 0x03ea #define PCI_VENDOR_ID_SYMPHONY 0x1c1c -- cgit v1.2.3