This patch is the third of three, designed to allow access to the permanent hardware address of a network device. This patch adds a new ioctl to get the field, "perm_addr," which was added to net_device by the first patch.
Signed-off-by: Jon Wetzel <[EMAIL PROTECTED]> --- linux-2.6.12.2/include/linux/sockios.h 2005-06-29 18:00:53.000000000 -0500 +++ linux-2.6.12.2-jw/include/linux/sockios.h 2005-07-12 08:44:36.000000000 -0500 @@ -54,6 +54,7 @@ #define SIOCGIFENCAP 0x8925 /* get/set encapsulations */ #define SIOCSIFENCAP 0x8926 #define SIOCGIFHWADDR 0x8927 /* Get hardware address */ +#define SIOCGIFPERMADDR 0x8928 /* Get permanent hardware address */ #define SIOCGIFSLAVE 0x8929 /* Driver slaving support */ #define SIOCSIFSLAVE 0x8930 #define SIOCADDMULTI 0x8931 /* Multicast address lists */ --- linux-2.6.12.2/net/core/dev.c 2005-06-29 18:00:53.000000000 -0500 +++ linux-2.6.12.2-jw/net/core/dev.c 2005-07-11 12:59:02.000000000 -0500 @@ -2387,6 +2387,15 @@ ifr->ifr_hwaddr.sa_family = dev->type; return 0; + case SIOCGIFPERMADDR: + if (!dev->addr_len) + memset(ifr->ifr_hwaddr.sa_data, 0, sizeof ifr->ifr_hwaddr.sa_data); + else + memcpy(ifr->ifr_hwaddr.sa_data, dev->perm_addr, + min(sizeof ifr->ifr_hwaddr.sa_data, (size_t) dev->addr_len)); + ifr->ifr_hwaddr.sa_family = dev->type; + return 0; + case SIOCSIFHWADDR: return dev_set_mac_address(dev, &ifr->ifr_hwaddr); - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html