kernel: sync with upstream