_>Можно ли применять к user_buffer адресную арифметику, или это прямой путь к kernel panic?
можно
если погрепать сорцы кернела на copy_to_user то в первом же найденном файле можно увидеть чо-нть такое:
if (copy_to_user(name + 0, utsname()->sysname, 32))
goto out;
if (copy_to_user(name + 32, utsname()->nodename, 32))
goto out;
if (copy_to_user(name + 64, utsname()->release, 32))
goto out;
if (copy_to_user(name + 96, utsname()->version, 32))
goto out;
if (copy_to_user(name + 128, utsname()->machine, 32))
goto out;