yet another attempt, now with simple_read/write instead of uaccess