I think I see now the cause for this confusion. Let me put it simply:
generation signature is not block signaturegeneration signature = hash(generation signature of previous block concatenated with the forger's public key)
block signature = signature of block; forger's private key required
purpose of generation signature => providing the hit
purpose of block signature => providing block integrity