1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-11 14:10:34 +00:00

- Fix an issue that paniced the machine in data overrun

condition.
- 1 line change that allows to balance chips between ncr
  and sym using pci compat option (not compiled by default
  in 4.0 but maintains the driver source 3.4 compatible).
This commit is contained in:
Gerard Roudier 2000-01-28 20:11:32 +00:00
parent 899ce4f40c
commit b5727bb5f0
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=56762

View File

@ -128,6 +128,9 @@ typedef u_int32_t u32;
#include <dev/sym/sym_conf.h>
#include <dev/sym/sym_defs.h>
/* We want to know if the ncr has been configured */
#include "ncr.h"
/*
* On x86 architecture, write buffers management does not
* reorder writes to memory. So, preventing compiler from
@ -1562,9 +1565,9 @@ struct sym_scrh {
u32 msg_out [ 4];
u32 msg_out_done [ 4];
#ifdef SYM_CONF_BROKEN_U3EN_SUPPORT
u32 no_data [ 36];
u32 no_data [ 38];
#else
u32 no_data [ 28];
u32 no_data [ 30];
#endif
u32 abort_resel [ 16];
u32 resend_ident [ 4];
@ -3045,6 +3048,8 @@ static struct sym_scrh scripth0 = {
offsetof (struct sym_ccb, xerr_status),
SCR_REG_REG (scratcha, SCR_OR, XE_EXTRA_DATA),
0,
SCR_STORE_REL (scratcha, 1),
offsetof (struct sym_ccb, xerr_status),
/*
* Count this byte.
* This will allow to return a positive
@ -6833,7 +6838,7 @@ static int sym_evaluate_dp(hcb_p np, ccb_p cp, u32 scr, int *ofs)
*/
tmp = scr_to_cpu(cp->phys.goalp);
dp_sg = SYM_CONF_MAX_SG;
if (dp_sg != tmp)
if (dp_scr != tmp)
dp_sg -= (tmp - 8 - (int)dp_scr) / (2*4);
dp_sgmin = SYM_CONF_MAX_SG - cp->segments;
@ -9712,7 +9717,12 @@ sym_pci_probe(pcici_t pci_tag, pcidi_t type)
struct sym_pci_chip *chip;
chip = sym_find_pci_chip(pci_tag);
#if NNCR > 0
/* Only claim chips we are allowed to take precedence over the ncr */
if (chip && !(chip->lp_probe_bit & SYM_SETUP_LP_PROBE_MAP))
#else
if (chip)
#endif
return chip->name;
return 0;
}