Preheat the oven to 350°F Butter and flour three 9-inch round cake pans. Cover the bottom of each pan with a round of parchment paper or waxed paper, cut to fit, pressing the paper snugly over the bottom of the pan.
Combine the flour, cinnamon, baking soda and salt, then sift them together into a bowl or on to a large sheet of waxed paper; set aside.
Put the granulated sugar and brown sugar in a large mixing bowl, add the eggs, and stir vigorously until smoothly blended with the sugar. When the eggs and sugars are blended, whisk in the oil and vanilla. Add the flour mixture all at once and stir just until moistened and the ingredients are evenly combined. Do not beat. Add the pineapple, banana, and walnuts, and stir just until blended.
Divide the batter among the three prepared cake pans, spreading it evenly. After filling the pans, give each one a bang on the countertop, to dislodge any air bubbles in the batter. Bake for 25-30 minutes, or until the cakes spring back when pressed gently with your finger and a toothpick or cake tester inserted in the center of a layer comes out clean.
Cool in the pans for 5 minutes, and then turn the layers out onto cooling racks to cool completely before frosting. If the parchment or waxed paper has clung to the layers, peel it off.
To make the frosting, you will need an electric mixer, preferably a freestanding one, although a powerful hand-held mixer will work. Cut the butter into 2-inch pieces and put in a large bowl of the mixer. Start slowly, gradually increasing the speed, and beat the chilled butter on medium speed until it becomes malleable, yet still cool, about 3 or 4 minutes. Cut the cream cheese into 2-inch pieces also, add to the butter, and continue to mix until smooth and thoroughly blended. Add the vanilla, then slowly add the confectioners’ sugar and mix until blended. Increase speed slightly and continue mixing for 2-3 minutes, until the frosting becomes light and fluffy. By hand, fold in the walnuts.
To assemble the cake, place one of the layers, bottom side up, on a plate. Spread with about 2/3 cup of frosting. Top with a second layer, bottom side down, and spread with an equal amount of frosting. Set the third layer, top side up, over the others. Frost the top and sides of the cake with the remaining frosting. Store the frosted cake at a cool but not refrigerated area until serving.