diff --git a/cpu/native/netdev2_tap/netdev2_tap.c b/cpu/native/netdev2_tap/netdev2_tap.c
index 5cccddafc7cfb2695dd07d3ea4058c1227f7fc24..44649d011d4783683f4c5b1eb96dfb6cee80fa5f 100644
--- a/cpu/native/netdev2_tap/netdev2_tap.c
+++ b/cpu/native/netdev2_tap/netdev2_tap.c
@@ -71,7 +71,7 @@ static void _sigio_child(netdev2_tap_t *dev);
 /* netdev2 interface */
 static int _init(netdev2_t *netdev);
 static int _send(netdev2_t *netdev, const struct iovec *vector, int n);
-static int _recv(netdev2_t *netdev, char* buf, int n);
+static int _recv(netdev2_t *netdev, char* buf, int n, void *info);
 
 static inline void _get_mac_addr(netdev2_t *netdev, uint8_t *dst)
 {
@@ -187,9 +187,10 @@ static inline bool _is_addr_multicast(uint8_t *addr)
     return (addr[0] & 0x01);
 }
 
-static int _recv(netdev2_t *netdev2, char *buf, int len)
+static int _recv(netdev2_t *netdev2, char *buf, int len, void *info)
 {
     netdev2_tap_t *dev = (netdev2_tap_t*)netdev2;
+    (void)info;
 
     if (!buf) {
         /* no way of figuring out packet size without racey buffering,
diff --git a/drivers/enc28j60/enc28j60.c b/drivers/enc28j60/enc28j60.c
index d195f92cf1b4ba505ba9452ac0d958263c5190f4..cc6d6634b1e0c2247f2f7d9caf733569a28efc4d 100644
--- a/drivers/enc28j60/enc28j60.c
+++ b/drivers/enc28j60/enc28j60.c
@@ -243,13 +243,14 @@ static int nd_send(netdev2_t *netdev, const struct iovec *data, int count)
     return c;
 }
 
-static int nd_recv(netdev2_t *netdev, char *buf, int max_len)
+static int nd_recv(netdev2_t *netdev, char *buf, int max_len, void *info)
 {
     enc28j60_t *dev = (enc28j60_t *)netdev;
     uint8_t head[6];
     size_t size;
     uint16_t next;
 
+    (void)info;
     mutex_lock(&dev->devlock);
 
     /* set read pointer to RX read address */
diff --git a/drivers/encx24j600/encx24j600.c b/drivers/encx24j600/encx24j600.c
index c76b62dece7e3900d2aadca3a88250ad9a8cdc10..8323137b9d54536e98324f9b8bdc89cb0747af8d 100644
--- a/drivers/encx24j600/encx24j600.c
+++ b/drivers/encx24j600/encx24j600.c
@@ -60,7 +60,7 @@ static void _get_mac_addr(netdev2_t *dev, uint8_t* buf);
 
 /* netdev2 interface */
 static int _send(netdev2_t *netdev, const struct iovec *vector, int count);
-static int _recv(netdev2_t *netdev, char* buf, int len);
+static int _recv(netdev2_t *netdev, char* buf, int len, void *info);
 static int _init(netdev2_t *dev);
 static void _isr(netdev2_t *dev);
 int _get(netdev2_t *dev, netopt_t opt, void *value, size_t max_len);
@@ -352,11 +352,12 @@ static void _get_mac_addr(netdev2_t *encdev, uint8_t* buf)
     unlock(dev);
 }
 
-static int _recv(netdev2_t *netdev, char* buf, int len)
+static int _recv(netdev2_t *netdev, char* buf, int len, void *info)
 {
     encx24j600_t * dev = (encx24j600_t *) netdev;
     encx24j600_frame_hdr_t hdr;
 
+    (void)info;
     lock(dev);
 
     /* read frame header */
diff --git a/sys/net/gnrc/link_layer/netdev2/gnrc_netdev2_eth.c b/sys/net/gnrc/link_layer/netdev2/gnrc_netdev2_eth.c
index 6c9a4a9b3aae53e22b3097505ba362542308b7d4..09d8ff3aa00f746aab9b9657639bc696dea5253a 100644
--- a/sys/net/gnrc/link_layer/netdev2/gnrc_netdev2_eth.c
+++ b/sys/net/gnrc/link_layer/netdev2/gnrc_netdev2_eth.c
@@ -32,7 +32,7 @@
 static gnrc_pktsnip_t *_recv(gnrc_netdev2_t *gnrc_netdev2)
 {
     netdev2_t *dev = gnrc_netdev2->dev;
-    int bytes_expected = dev->driver->recv(dev, NULL, 0);
+    int bytes_expected = dev->driver->recv(dev, NULL, 0, NULL);
     gnrc_pktsnip_t *pkt = NULL;
 
     if (bytes_expected) {
@@ -45,7 +45,7 @@ static gnrc_pktsnip_t *_recv(gnrc_netdev2_t *gnrc_netdev2)
             goto out;
         }
 
-        int nread = dev->driver->recv(dev, pkt->data, bytes_expected);
+        int nread = dev->driver->recv(dev, pkt->data, bytes_expected, NULL);
         if(nread <= 0) {
             DEBUG("_recv_ethernet_packet: read error.\n");
             goto safe_out;