Sync ether_ioctl() with ioctl(2) and ifnet.if_ioctl

as to the type of the command argument: int -> u_long.
These types have different widths in the 64-bit world.

Add a note to UPDATING because the change breaks KBI
on 64-bit platforms.

Discussed on:	-net, -current
Reviewed by:	bms, ru
This commit is contained in:
yar 2007-05-29 12:40:45 +00:00
parent 7db245bca4
commit 80a596eece
3 changed files with 8 additions and 2 deletions

View File

@ -21,6 +21,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 7.x IS SLOW:
developers choose to disable these features on build machines
to maximize performance.
20070529:
The ether_ioctl() function has been synchronized with ioctl(2)
and ifnet.if_ioctl. Due to that, the size of one of its arguments
has changed on 64-bit architectures. All kernel modules using
ether_ioctl() need to be rebuilt on such architectures.
20070516:
Improved INCLUDE_CONFIG_FILE support has been introduced to the
config(8) utility. In order to take advantage of this new

View File

@ -379,7 +379,7 @@ extern uint32_t ether_crc32_be(const uint8_t *, size_t);
extern void ether_demux(struct ifnet *, struct mbuf *);
extern void ether_ifattach(struct ifnet *, const u_int8_t *);
extern void ether_ifdetach(struct ifnet *);
extern int ether_ioctl(struct ifnet *, int, caddr_t);
extern int ether_ioctl(struct ifnet *, u_long, caddr_t);
extern int ether_output(struct ifnet *,
struct mbuf *, struct sockaddr *, struct rtentry *);
extern int ether_output_frame(struct ifnet *, struct mbuf *);

View File

@ -1018,7 +1018,7 @@ ether_crc32_be(const uint8_t *buf, size_t len)
}
int
ether_ioctl(struct ifnet *ifp, int command, caddr_t data)
ether_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
{
struct ifaddr *ifa = (struct ifaddr *) data;
struct ifreq *ifr = (struct ifreq *) data;