What is the difference between upstream and downstream kernel?
Upstream kernel refers to the latest kernel. But downstream kernel?
In linux distributions the term 'upstream' (also applied to kernel) refers to the original version (as is released by software developers) of a program/software (kernel in your case) while 'downstream' refers to the software provided by linux distribution. The latter version often contains some patches and is distributed with some specific configuration which makes it somewhat different from original software. Different linux distributions apply different set of patches and configure software (during compilation) in a different way. This makes the same software distributed by linux distributions to be very different (especially if the project is 'large' and contains lots of configuration options). For example, linux kernel contains perhaps thousands of compile-time options, and each distribution has its own set of configuration options applied.
This term is often used in open source project bugzilla-like sites. The 'upstream issue' means that the the problem exists in 'original' program and should be fixed by its developers. The 'downstream issue' means the linux distribution developers (which distribute the software) made some mistake (at least, it is believed to) which makes the software behave in inappropriate way (for example, outdated patch is applied, some erroneous config file is provided, etc).