Fix binary/logical operator typo which leads to unreachable code.
Noticed while looking at other issues; I don't have the relevant
hardware to test this.
Signed-off-by: Nathan Lynch <[email protected]>
--- linux-2.6-powerpc.git.orig/drivers/video/nvidia/nv_setup.c
+++ linux-2.6-powerpc.git/drivers/video/nvidia/nv_setup.c
@@ -262,7 +262,7 @@ static void nv10GetConfig(struct nvidia_
#endif
dev = pci_find_slot(0, 1);
- if ((par->Chipset && 0xffff) == 0x01a0) {
+ if ((par->Chipset & 0xffff) == 0x01a0) {
int amt = 0;
pci_read_config_dword(dev, 0x7c, &amt);
On Wed, 8 Nov 2006 13:55:11 -0600
Nathan Lynch <[email protected]> wrote:
> Fix binary/logical operator typo which leads to unreachable code.
> Noticed while looking at other issues; I don't have the relevant
> hardware to test this.
>
>
> Signed-off-by: Nathan Lynch <[email protected]>
>
> --- linux-2.6-powerpc.git.orig/drivers/video/nvidia/nv_setup.c
> +++ linux-2.6-powerpc.git/drivers/video/nvidia/nv_setup.c
> @@ -262,7 +262,7 @@ static void nv10GetConfig(struct nvidia_
> #endif
>
> dev = pci_find_slot(0, 1);
> - if ((par->Chipset && 0xffff) == 0x01a0) {
> + if ((par->Chipset & 0xffff) == 0x01a0) {
> int amt = 0;
>
> pci_read_config_dword(dev, 0x7c, &amt);
That looks like a pretty significant bug. It'll cause the kernel to
potentially map the wrong amount of memory for all cards except the
NV_ARCH_04 type. Has been there for over a year though. hmm..
Andrew Morton wrote:
> On Wed, 8 Nov 2006 13:55:11 -0600
> Nathan Lynch <[email protected]> wrote:
>
> > Fix binary/logical operator typo which leads to unreachable code.
> > Noticed while looking at other issues; I don't have the relevant
> > hardware to test this.
> >
> >
> > Signed-off-by: Nathan Lynch <[email protected]>
> >
> > --- linux-2.6-powerpc.git.orig/drivers/video/nvidia/nv_setup.c
> > +++ linux-2.6-powerpc.git/drivers/video/nvidia/nv_setup.c
> > @@ -262,7 +262,7 @@ static void nv10GetConfig(struct nvidia_
> > #endif
> >
> > dev = pci_find_slot(0, 1);
> > - if ((par->Chipset && 0xffff) == 0x01a0) {
> > + if ((par->Chipset & 0xffff) == 0x01a0) {
> > int amt = 0;
> >
> > pci_read_config_dword(dev, 0x7c, &amt);
>
> That looks like a pretty significant bug. It'll cause the kernel to
> potentially map the wrong amount of memory for all cards except the
> NV_ARCH_04 type. Has been there for over a year though. hmm..
Did some searching, and assuming that chipset == PCI device id
(dubious?), I think the bug would affect only some integrated GeForce2
cards, which are somewhat old.
It looks to me like the other devices handled by nv10GetConfig would
still be handled as intended, but I'm not familiar with this code.
> Andrew Morton wrote:
>> On Wed, 8 Nov 2006 13:55:11 -0600
>> Nathan Lynch <[email protected]> wrote:
>>
>>> Fix binary/logical operator typo which leads to unreachable code.
>>> Noticed while looking at other issues; I don't have the relevant
>>> hardware to test this.
>>>
>>>
>>> Signed-off-by: Nathan Lynch <[email protected]>
>>>
>>> --- linux-2.6-powerpc.git.orig/drivers/video/nvidia/nv_setup.c
>>> +++ linux-2.6-powerpc.git/drivers/video/nvidia/nv_setup.c
>>> @@ -262,7 +262,7 @@ static void nv10GetConfig(struct nvidia_
>>> #endif
>>>
>>> dev = pci_find_slot(0, 1);
>>> - if ((par->Chipset && 0xffff) == 0x01a0) {
>>> + if ((par->Chipset & 0xffff) == 0x01a0) {
>>> int amt = 0;
>>>
>>> pci_read_config_dword(dev, 0x7c, &amt);
>>
>> That looks like a pretty significant bug. It'll cause the kernel to
>> potentially map the wrong amount of memory for all cards except the
>> NV_ARCH_04 type. Has been there for over a year though. hmm..
>
> Did some searching, and assuming that chipset == PCI device id
> (dubious?), I think the bug would affect only some integrated GeForce2
> cards, which are somewhat old.
>
> It looks to me like the other devices handled by nv10GetConfig would
> still be handled as intended, but I'm not familiar with this code.
>
Your assumption is correct :-)