--- zzzz-none-000/linux-2.6.13.1/net/socket.c 2005-09-10 02:42:58.000000000 +0000 +++ ohio-7170-487/linux-2.6.13.1/net/socket.c 2007-02-02 11:39:44.000000000 +0000 @@ -833,6 +833,7 @@ struct socket *sock; void __user *argp = (void __user *)arg; int pid, err; + unsigned long tc_index; sock = SOCKET_I(file->f_dentry->d_inode); if (cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) { @@ -896,6 +897,19 @@ up(&dlci_ioctl_mutex); } break; + + case SIOCSET_TC_INDEX: + err = -EFAULT; + if (get_user(tc_index, (unsigned long __user *)argp)) + break; + sock->sk->sk_tc_index = tc_index; + err = 0; + break; + + case SIOCGET_TC_INDEX: + err = put_user(sock->sk->sk_tc_index, (unsigned long __user *)argp); + break; + default: err = sock->ops->ioctl(sock, cmd, arg); break;