2008-05-08  David S. Miller  <davem@davemloft.net>

	* syscall.c (socket_map, sparc_socket_decode): Delete.
	(trace_syscall): Use common socketcall and ipc subcall
	support on sparc.
	* linux/sparc/syscall.h (sys_semtimedop): Declare.
	(SYS_socket_subcall, SYS_sub_socket, SYS_sub_bind,
	SYS_sub_connect, SYS_sub_listen, SYS_sub_accept,
	SYS_sub_getsockname, SYS_sub_getpeername,
	SYS_sub_socketpair, SYS_sub_send, SYS_sub_recv,
	SYS_sub_sendto, SYS_sub_recvfrom, SYS_sub_shutdown,
	SYS_sub_setsockopt, SYS_sub_getsockopt, SYS_sub_sendmsg,
	SYS_sub_recvmsg, SYS_socket_nsubcalls, SYS_ipc_subcall,
	SYS_sub_semop, SYS_sub_semget, SYS_sub_semctl,
	SYS_sub_semtimedop, SYS_sub_msgsnd, SYS_sub_msgrcv,
	SYS_sub_msgget, SYS_sub_msgctl, SYS_sub_shmat,
	SYS_sub_shmdt, SYS_sub_shmget, SYS_sub_shmctl,
	SYS_ipc_nsubcalls): Define
	* linux/sparc/syscallent.h: Add socketcall and ipc entries.
diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h
index aadb269..ecb4018 100644
--- a/linux/sparc/syscallent.h
+++ b/linux/sparc/syscallent.h
@@ -351,3 +351,57 @@
 	{ 5,	0,	printargs,	"SYS_350" },		/* 350 */
 	{ 5,	0,	printargs,	"SYS_351" },		/* 351 */
 	{ 5,	0,	printargs,	"SYS_352" },		/* 352 */
+#if SYS_socket_subcall != 353
+ #error fix me
+#endif
+	{ 8,	0,	printargs,		"socket_subcall"}, /* 353 */
+	{ 3,	TN,	sys_socket,		"socket"	}, /* 354 */
+	{ 3,	TN,	sys_bind,		"bind"		}, /* 355 */
+	{ 3,	TN,	sys_connect,		"connect"	}, /* 356 */
+	{ 2,	TN,	sys_listen,		"listen"	}, /* 357 */
+	{ 3,	TN,	sys_accept,		"accept"	}, /* 358 */
+	{ 3,	TN,	sys_getsockname,	"getsockname"	}, /* 359 */
+	{ 3,	TN,	sys_getpeername,	"getpeername"	}, /* 360 */
+	{ 4,	TN,	sys_socketpair,		"socketpair"	}, /* 361 */
+	{ 4,	TN,	sys_send,		"send"		}, /* 362 */
+	{ 4,	TN,	sys_recv,		"recv"		}, /* 363 */
+	{ 6,	TN,	sys_sendto,		"sendto"	}, /* 364 */
+	{ 6,	TN,	sys_recvfrom,		"recvfrom"	}, /* 365 */
+	{ 2,	TN,	sys_shutdown,		"shutdown"	}, /* 366 */
+	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 367 */
+	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 368 */
+	{ 5,	TN,	sys_sendmsg,		"sendmsg"	}, /* 369 */
+	{ 5,	TN,	sys_recvmsg,		"recvmsg"	}, /* 370 */
+#if SYS_ipc_subcall != 371
+ #error fix me
+#endif
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 371 */
+	{ 4,	TI,	printargs,		"semop"		}, /* 372 */
+	{ 4,	TI,	sys_semget,		"semget"	}, /* 373 */
+	{ 4,	TI,	sys_semctl,		"semctl"	}, /* 374 */
+	{ 5,	TI,	sys_semtimedop,		"semtimedop"	}, /* 375 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 376 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 377 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 378 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 379 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 380 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 381 */
+	{ 4,	TI,	sys_msgsnd,		"msgsnd"	}, /* 382 */
+	{ 4,	TI,	sys_msgrcv,		"msgrcv"	}, /* 383 */
+	{ 4,	TI,	sys_msgget,		"msgget"	}, /* 384 */
+	{ 4,	TI,	sys_msgctl,		"msgctl"	}, /* 385 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 386 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 387 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 388 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 389 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 390 */
+	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 391 */
+	{ 4,	TI,	sys_shmat,		"shmat"		}, /* 392 */
+	{ 4,	TI,	sys_shmdt,		"shmdt"		}, /* 393 */
+	{ 4,	TI,	sys_shmget,		"shmget"	}, /* 394 */
+	{ 4,	TI,	sys_shmctl,		"shmctl"	}, /* 395 */
+	{ 5,	0,	printargs,		"SYS_343"	}, /* 396 */
+	{ 5,	0,	printargs,		"SYS_344"	}, /* 397 */
+	{ 5,	0,	printargs,		"SYS_345"	}, /* 398 */
+	{ 5,	0,	printargs,		"SYS_346"	}, /* 399 */
+	{ 5,	0,	printargs,		"SYS_347"	}, /* 400 */