The padding destination or hop-by-hop option is called Pad1 and not Pad0.
See RFC2460 (4.2) or the IANA ipv6-parameters registry:
http://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xml
Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
 /*
  *     IPv6 TLV options.
  */
-#define IPV6_TLV_PAD0          0
+#define IPV6_TLV_PAD1          0
 #define IPV6_TLV_PADN          1
 #define IPV6_TLV_ROUTERALERT   5
 #define IPV6_TLV_JUMBO         194
 
        hopopt[3] = 2;                          /* Length of RA Option */
        hopopt[4] = 0;                          /* Type = 0x0000 (MLD) */
        hopopt[5] = 0;
-       hopopt[6] = IPV6_TLV_PAD0;              /* Pad0 */
-       hopopt[7] = IPV6_TLV_PAD0;              /* Pad0 */
+       hopopt[6] = IPV6_TLV_PAD1;              /* Pad1 */
+       hopopt[7] = IPV6_TLV_PAD1;              /* Pad1 */
 
        skb_put(skb, sizeof(*ip6h) + 8);
 
 
                int optlen = nh[off + 1] + 2;
 
                switch (nh[off]) {
-               case IPV6_TLV_PAD0:
+               case IPV6_TLV_PAD1:
                        optlen = 1;
                        break;
 
 
 
                switch (opt[off]) {
 
-               case IPV6_TLV_PAD0:
+               case IPV6_TLV_PAD1:
                        optlen = 1;
                        break;
                default:
 
                switch (opt[off]) {
 
-               case IPV6_TLV_PAD0:
+               case IPV6_TLV_PAD1:
                        optlen = 1;
                        break;
                default:
 
                        return offset;
 
                switch (opttype) {
-               case IPV6_TLV_PAD0:
+               case IPV6_TLV_PAD1:
                        optlen = 1;
                        break;
                default:
                int i;
 
                switch (nh[off]) {
-               case IPV6_TLV_PAD0:
+               case IPV6_TLV_PAD1:
                        optlen = 1;
                        break;
 
 
        if (!data)
                return NULL;
        if (padlen == 1) {
-               data[0] = IPV6_TLV_PAD0;
+               data[0] = IPV6_TLV_PAD1;
        } else if (padlen > 1) {
                data[0] = IPV6_TLV_PADN;
                data[1] = padlen - 2;
 
 
        while (len > 1) {
                switch (xh[off]) {
-               case IPV6_TLV_PAD0:
+               case IPV6_TLV_PAD1:
                        optlen = 1;
                        break;
                case IPV6_TLV_JUMBO: